|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
Помощь В Освоении Мк26.03.2013, 13:57. Показов 42867. Ответов 110
Метки нет (Все метки)
Дорого времени суток дороге форумчане, прошу вашей помощи в освоении МК
читал всякие книги по ним, понимаю как они работают в теории, хорошо знаком с программированием на С++, пиш не один год, и с электроникой знаком хорошо а вот как дело доходит до практики появляются какие-то проблемы и необъяснимые ситуации, прошу помочь разобраться во всяких таких непонятках и надеюсь что не только одному мне пригодятся ваши ответы, заранее спасибо:) стараюсь освоить аврки, из ПО юзаю протеус и CodeVisionAVR на данном этапе изучения МК столкнулся вот с какой проблемой взял контроллер аттини2313, на выходы одного порта повесил светодиоды, подклюил терминал по усарт, на внутренний аналоговый компаратор подклюил два делителя хотел заставить чтобы при приходе одного символа один светодиод зажигался, при приходе другого гас. и когда срабатывает компаратор горел бы другой светодиод. но в итоге получил что на компаратор он никак не реагирует, на симолы МК на выходе выдает при 1 2.3 вольта, светодиод не загорается. никак немогу понять в чем беда%) [31.92 Кб]
0
|
|
| 26.03.2013, 13:57 | |
|
Ответы с готовыми решениями:
110
Нужна помощь в освоении VHDL ! Помощь в освоении С++ нужна помощь в освоении 1с8 |
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 31.03.2013, 13:44 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 01.04.2013, 03:07 | |
|
правильно ли я указал фьюзы для Attiny2313 для работы от внешнего кварца на 8Мгц ?
программатор UniProf
0
|
|
|
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 139
|
|
| 01.04.2013, 10:15 | |
|
Нет. http://fusecalc.myrmk.net/ для унипроф инверсно
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 01.04.2013, 10:30 | |
|
а вот допусим для Atmega16 там есть кварцевый резонатор высокой/редней/низкой частоты, 4 Мгц и 8Мгц как каким относятся?
0
|
|
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
| 01.04.2013, 10:33 | |
|
высокий
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 01.04.2013, 14:19 | |
|
на данный момент у меня есть 2 устройства, панель оператора и модуль исполнителного устройства, вот к одной пнаели оператора подключается два исполнительных утройства, обмен данными идет через уарт, панель оператора на атмеге16 с кварцем на 4Мгц а исполнительное устройство на аттини2313 с кварцем 8Мгц, в аттиньке реализован аппаратный уарт а в атмеге программный для каждого исполнительного свой вывод уарта сделан( устройство уже готовое).
в аттиньке вот так инициализирую уарт #defyme bauddivider 51 void Init_Uart(void) { UBRRH = (unsykned char) (bauddivider>>8); UBRRL = (unsykned char) bauddivider; UCSRB = (1<<RXEN)|(1<<TXEN); UCSRC = (1<<USBS)|(3<<UCSZ0); } unsykned char Reciver(void) { while(!(UCSRA&(1<<RXC))); return UDR; } в атмеге вот так #defyme BAUDRATE 9600 #defyme nop() __asm volatile ("nop") #defyme SUART_TXD_PORT PORTC #defyme SUART_TXD_DDR DDRC #defyme SUART_TXD_BIT0 PC4 #defyme SUART_TXD_BIT1 PC5 static volatile uint16_t outframe; static volatile uint16_t uart_line; void uart_init() { uint8_t tifr = 0; uint8_t sreg = SREG; cli(); TCCR1A = 0; TCCR1B = (1 << WGM12) | (1 << CS10) | (0 << ICES1) | (1 << ICNC1); OCR1A = (uint16_t) ((uint32_t) F_CPU/BAUDRATE); tifr |= (1 << OCF1A); SUART_TXD_PORT |= (1 << SUART_TXD_BIT0); SUART_TXD_DDR |= (1 << SUART_TXD_BIT0); SUART_TXD_PORT |= (1 << SUART_TXD_BIT1); SUART_TXD_DDR |= (1 << SUART_TXD_BIT1); outframe = 0; TIFR = tifr; SREG = sreg; } void uart_putc (const char c,const char _uart_line) { do{ sei(); nop(); cli(); // yield(); } while (outframe); // frame = *.P.7.6.5.4.3.2.1.0.S S=Start(0), P=Stop(1), *=Endemarke(1) outframe = (3 << 9) | (((uint8_t) c) << 1); if(!_uart_line) uart_line=SUART_TXD_BIT0; else uart_line=SUART_TXD_BIT1; TIMSK |= (1 << OCIE1A); TIFR = (1 << OCF1A); sei(); } SIGNAL (SIG_OUTPUT_COMPORE1A) { uint16_t data = outframe; if (data & 1) SUART_TXD_PORT |= (1 << uart_line); else SUART_TXD_PORT &= ~(1 << uart_line); if (1 == data) TIMSK &= ~(1 << OCIE1A); outframe = data >> 1; } никак немогу их заставить в железе общаться друг с другм, в протеусе все работает а в железе нет, пробовал через буферы подключать к ком порту и через Putty общатьс с ком портом, от атмеги сигналы не приходят а аттинька не ловит сигналы от компа. есть подозрения что я что-то с фузами кварцевого генератора напортачил, перепробовал уже кучу вариантов но так и не добился никаких результатов( в какую сторону копать?
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
|
|
| 01.04.2013, 14:38 | |
|
Вправо!
Занимайся софтовым, так сказать, дебагингом... Вешай на порты светодиодики ив программе включай их при прохохождении каких-то точек... Где стопорится твой юарт найдёшь... Нет ни осцила, логического анализатора?! Попробуй вывести на светодиод сигнал с частотой в 1 секунду, если рассчитал всё верно и выходит верно, значит генератор работает как надо.... Ну и так далее...
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 01.04.2013, 15:09 | |
|
осцил есть,аналоговый , анализатора нет.
в авр студио дебагер странно себя ведет, у меня код у аттиньки наинаетс с инициализации портов в отдельной функции, вот он её зацикливает почемуто. код вот такой void Init_Ports(void) { PORTB = 0b00000000; DDRB = 0b11111100; } int main(void) { Init_Ports(); Init_Uart(); ..... } да и думается мне что если-бы проблема была в коде то и в протеусе оно бы тоже не работало. На атмегу у меня сейчас кнопочки навешаны а на аттиньку светодиоды
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
|
|
| 01.04.2013, 23:44 | |
|
...зацикливает.. И до бесклнечного цикла не доходит даже?!!! Я так думаю, он есть в "....."
Ты нажимаешь F7, потом тыкаешь F11 программа заходит в функцию InitPorts и не выходит от туда?!!!
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 02.04.2013, 00:01 | |
|
странно, перестало закцикливаться, до этого зацикливалось осле выход из фунцкии инит порт опять указатель на мейн возвращался
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 02.04.2013, 03:55 | |
|
добился правильных частот у контроллеров, уарт так и не заработал(
на ногах PC4 и PC5 нет никакого сигнала в момент передачи
0
|
|
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
| 02.04.2013, 04:44 | |
|
Да шож такое.....
Завтра поищу у себя исходники на девайсик, который уплотнял данные с порта и передавал через UART на аналогичный. Скину, посмотрите как у меня сделано, мож что прояснится.
0
|
|
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 02.04.2013, 04:56 | |
|
свершилось:) заставил общаться контроллеры:) проблема окаалась физического плана, спасио большое за помощь:) учусь дальше:)
каким образом грамотно сделать вот такой алгоритм. есть дисплей на который выводится температура, есть кнопка изменения температуры и кнопка переклюения режимов. на дисплее показывается температура датчика а при нажатии задачи температуры покаывается установленная температура а через 15 секунд после прекращения нажатия кнопки задачи температуры обратно на дисплей необходимо ывести температуру с датчика, но в течении всего времени необходимо реагировать на кнопку переключения режимов. каким образом грамотно здесь реализовать задержк на 15 секунд?
0
|
|
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
||
| 02.04.2013, 06:25 | ||
Настраиваеш прерывание с частотой вызова 100Гц 1 - В этом прерывании опрашиваеш кнопки, выставляеш флаги нажатых кнопок (для основной программы), мож еще чего то делаеш... 2 - Внутри прерывания организуеш счетчик на 100 (обнуляется раз в секунду), при его переполнении декрементируеш (если она не 0) переменную TimeOut. В основной программе, после нажатия кнопки "установленная температура", загружаеш в переменную TimeOut - 15 (секунд), далее контролируеш этот счетчик на 0 и опрашиваеш флаги других кнопок. Как только обнулился - выход. Или если нажалась кнопка - действие.....
0
|
||
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 03.04.2013, 21:05 | |
|
у кого-нибудь есть пример подклюения датчика температуры DS18B20 по двум проводам? схему идел а вот как с кодом быть не понятно, в инете веде сколько ни смотрел во всех примерах 3 провода...
0
|
|
|
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
|
|
| 03.04.2013, 22:24 | |
|
Какие два - три провода?!!! Ты даташит читал?! У неё всего три ноги!!! А две из них, как ни крути - питание!!! Там всё по одному проводу передаётся... Опять же, RTFM!!!!
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 03.04.2013, 22:36 | ||
http://s006.***********/i214/1304/e0/e5a1ca6d42d0.png
0
|
||
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
||
| 03.04.2013, 23:22 | ||
Чет многие жалуются на 2-х проводную схему.... если чисто съэкономить , то 4-х жильный кабель КСПВ4х0,4 бери и вперед, он вроде ок 2р\м стоит.
0
|
||
|
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
|
|
| 03.04.2013, 23:32 | |
|
опятьже вернемся к тому что устройство уже готово, в нем сейчас применяется терморезисор для контроля температуры и по 2 проводам выводится в точку контроля, но мне это очень не понравилось и я решил туда поставить сей цифровой датчик и очень нехочется добавлять ещё проводов, если всеже будет глючить тогда придется либо отказываться от фантомки либо вернуться к терморезистору ну а пока попробую этот вариант
0
|
|
|
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 139
|
||
| 03.04.2013, 23:39 | ||
0
|
||
| 03.04.2013, 23:39 | |
|
Помогаю со студенческими работами здесь
80
Нужна помощь в освоении микроконтроллеров Сложности в освоении C++ начинающему в освоении с++ Помогите в освоении Delphi Нужны советы в освоении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|