Есть проект где визардом сгенерировано все для USART (прерывания и буферы) Передача идет вроде без проблем, но вот на приеме он виснет и протеус в логе кидает такую фразу
Warning: [U1] Spurious interrupt UNUSED ignored
и все... я уже сталкивался с глюком Протеуса на PIC16F877 на шине I2C поэтому готов грешить как на компилятор так и на эмулятор... help! ------ проверил на ArtmanAVR IDE тоже не фурычит. передача идет нормально.
да, собственно, уже со всем разобрался... оказалось что Proteus работает некорректно именно при включенном прерывании на RX_COMPLETE. Если его выключить - все нормально принимается. что характерно, в нем самом говорится лишь про ограничение на UART(типа USART лень было заморачиваться)... а VMLAB меня не особо порадовал. и он не хочет брать исходники из-под CVAVR.
Аристарх писал(а):да, собственно, уже со всем разобрался... оказалось что Proteus работает некорректно именно при включенном прерывании на RX_COMPLETE. Если его выключить - все нормально принимается.
У меня все работает правда я компилю под WINAvr
Аристарх писал(а):что характерно, в нем самом говорится лишь про ограничение на UART(типа USART лень было заморачиваться)...
Здесь имелось ввиду отсутствие СИНХРОННОГО режима работы а в АСИНХРОННОМ все работает с пол пинка.
Tracer писал(а):У тебя прием работает а ПЕРЕДАЧА нет. if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) tx_buffer[tx_wr_index]=c
Зачем класть в буфер если регистр данных на передачу ПУСТОЙ?
а там и не кладется. ветка ELSE.
Убери лишнее, помахайся одним символом без буфера, убедись что ВСЕ РАБОТАЕТ а потом наворачивай программу.
гм... так и делаю (опыт отладки имеется). но я не говорю, что это вообще не работает. Не работает конкретно в Proteus, и только там! Для проверки себя реализовал те же функции, но через PIC - там все работает без запинки. 2 avr123.nm.ru: вы написали очень хороший курс по освоению МК серии AVR, но вопрос сейчас не про VMLAB. вопрос про Proteus.[/i]
Уважаемый, avr123.nm.ru я понимаю, что фразу "не хочет работать с исходниками CVAVR" можно понять как "он ВООБЩЕ с ними не работает", но это НЕ ТАК, ибо в итоге генерится АСМ файл, который можно подогнать подо ЧТО УГОДНО. Поэтому мою фразу и надо было расценить как "не получилось". Но я согласен, что звучит категорично. Далее, данная тема про, если мне не изменяет моя память, называется ATmega32 + UART + Proteus. Где вы видите в названии VMLAB? И вопрос стоит именно о проверке на роботоспособноть Proteus и, если это возможно, обнаружение способа обхода этой проблемы. Я НЕ СОМНЕВАЮСЬ в работоспособности кода, генерируемого VCAVR и искал людей, которые уже сталкивались с данной проблемой и либо ее решили, либо нет. А наша перепалка - это, простите, демагогия. Если вы так сильно цепляетесь к словам, которые не важны в данном контексте(а важны в другом), то будьте добры сдерживать себя. Я не намерен далее прерираться по этому вопросу. И, к слову, ваши ответы ни на йоту не помогли в решении данной проблемы.
Аристарх писал(а):Уважаемый, avr123.nm.ru я понимаю, что фразу "не хочет работать с исходниками CVAVR" можно понять как "он ВООБЩЕ с ними не работает", но это НЕ ТАК, ибо
в итоге генерится АСМ файл, который можно подогнать подо ЧТО УГОДНО.
"исходник" в CVAVR это именно текст программы на Си, вот по нему вы и можете двигаться при симуляции в VMLAB.