roboforum.ru

Технический форум по робототехнике.

ATmega32 + UART + Proteus - RX не работает

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

ATmega32 + UART + Proteus - RX не работает

Сообщение Аристарх » 12 апр 2006, 19:48

есть: Proteus 6.7 SP3
СVAVR 1.24.8b

Есть проект где визардом сгенерировано все для USART (прерывания и буферы)
Передача идет вроде без проблем, но вот на приеме он виснет и протеус в логе кидает такую фразу
Warning: [U1] Spurious interrupt UNUSED ignored


и все...
я уже сталкивался с глюком Протеуса на PIC16F877 на шине I2C поэтому готов грешить как на компилятор так и на эмулятор...
help!
------
проверил на ArtmanAVR IDE
тоже не фурычит.
передача идет нормально.
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение avr123.nm.ru » 13 апр 2006, 00:51

попробуй в VMLAB

задачи 2 и 8а  - там http://avr123.nm.ru/avrpic06.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Аристарх » 13 апр 2006, 07:30

да, собственно, уже со всем разобрался...
оказалось что Proteus работает некорректно именно при включенном прерывании на RX_COMPLETE. Если его выключить - все нормально принимается.
что характерно, в нем самом говорится лишь про ограничение на UART(типа USART лень было заморачиваться)...
а VMLAB меня не особо порадовал. и он не хочет брать исходники из-под CVAVR.
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение avr123.nm.ru » 13 апр 2006, 09:05

Аристарх писал(а):а VMLAB меня не особо порадовал. и он не хочет брать исходники из-под CVAVR.


Если вы не умеете это делать не надо "наговаривать" на программу что она что-то не хочет !

Написал же вам где научится:

попробуй в VMLAB

задачи 2 и 8а  - там http://avr123.nm.ru/avrpic06.htm

VMLAB исходники берет именно из CVAVR
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Tracer » 13 апр 2006, 10:36

Аристарх писал(а):да, собственно, уже со всем разобрался...
оказалось что Proteus работает некорректно именно при включенном прерывании на RX_COMPLETE. Если его выключить - все нормально принимается.


У меня все работает правда я компилю под WINAvr

Аристарх писал(а):что характерно, в нем самом говорится лишь про ограничение на UART(типа USART лень было заморачиваться)...

Здесь имелось ввиду отсутствие СИНХРОННОГО режима работы а в
АСИНХРОННОМ все работает с пол пинка.

УДАЧИ!! :о))
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение avr123.nm.ru » 13 апр 2006, 11:21

вобщем когда что-то не получается не надо сразу на зеркало грешить...

начинать с себя !  что я делаю не так ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Аристарх » 13 апр 2006, 15:31

avr123.nm.ru писал(а):вобщем когда что-то не получается не надо сразу на зеркало грешить...

начинать с себя !  что я делаю не так ?

и что я в следующем примере сделал не так?
Вложения
uart_sample.rar
(47 КиБ) Скачиваний: 88
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение Tracer » 13 апр 2006, 21:25

У тебя прием работает а ПЕРЕДАЧА нет.

if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
tx_buffer[tx_wr_index]=c

Зачем класть в буфер если регистр данных на передачу ПУСТОЙ?

Убери лишнее, помахайся одним символом без буфера, убедись что ВСЕ РАБОТАЕТ а потом наворачивай программу.
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение avr123.nm.ru » 13 апр 2006, 23:58

Аристарх писал(а):
avr123.nm.ru писал(а):вобщем когда что-то не получается не надо сразу на зеркало грешить...


и что я в следующем примере сделал не так?


я не знаю что вы там сделали.

Я вам о том что VMLAB прекрасно работает с CVAVR.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Аристарх » 14 апр 2006, 22:12

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]
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение avr123.nm.ru » 15 апр 2006, 02:39

Аристарх писал(а):вопрос сейчас не про VMLAB.

вопрос про Proteus.[/i]


я не отвечаю на вопрос!

я опровергаю вот это ВРАНЬЕ:

Аристарх писал(а):а VMLAB меня не особо порадовал. и

он не хочет брать исходники из-под CVAVR.


Еслиб вы написали что у вас не получилось работать в VMLAB с исходниками из CVAVR  - то VMLAB был бы ни причем.

========

симуляцией в VMLAB вы можете
определить виноват ли PROTEUS - так что я по теме!
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Аристарх » 15 апр 2006, 14:01

Уважаемый, avr123.nm.ru я понимаю, что фразу "не хочет работать с исходниками CVAVR" можно понять как "он ВООБЩЕ с ними не работает", но это НЕ ТАК, ибо в итоге генерится АСМ файл, который можно подогнать подо ЧТО УГОДНО. Поэтому мою фразу и надо было расценить как "не получилось".
Но я согласен, что звучит категорично.
Далее, данная тема про, если мне не изменяет моя память, называется ATmega32 + UART + Proteus. Где вы видите в названии VMLAB? И вопрос стоит именно о проверке на роботоспособноть Proteus и, если это возможно, обнаружение способа обхода этой проблемы. Я НЕ СОМНЕВАЮСЬ в работоспособности кода, генерируемого VCAVR и искал людей, которые уже сталкивались с данной проблемой и либо ее решили, либо нет.
А наша перепалка - это, простите, демагогия. Если вы так сильно цепляетесь к словам, которые не важны в данном контексте(а важны в другом), то будьте добры сдерживать себя. Я не намерен далее прерираться по этому вопросу.
И, к слову, ваши ответы ни на йоту не помогли в решении данной проблемы.
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение Аристарх » 15 апр 2006, 14:22

Tracer писал(а):У меня все работает правда я компилю под WINAvr


и эмулируется в Proteus?
Аристарх
 
Сообщения: 7
Зарегистрирован: 12 апр 2006, 19:13
Откуда: Калуга

Сообщение avr123.nm.ru » 15 апр 2006, 19:26

Аристарх писал(а):Уважаемый, avr123.nm.ru я понимаю, что фразу "не хочет работать с исходниками CVAVR" можно понять как "он ВООБЩЕ с ними не работает", но это НЕ ТАК, ибо

в итоге генерится АСМ файл, который можно подогнать подо ЧТО УГОДНО.


"исходник" в  CVAVR  это именно текст программы на Си, вот по нему вы и можете двигаться при симуляции в VMLAB.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Tracer » 16 апр 2006, 12:58

Не поленился проверил
Результат:
на 8535 РАБОТАЕТ :)
на М8 М16 М32 НЕ РАБОТАЕТ :x
на М128 РАБОТАЕТ :P

Наверное модель глючит она с UCSRC никак не разберется оттуда и все проблемы.

народ уже вроде 6.84 ставит может там пофиксили

PS
Извини что ввел тебя в заблуждение
Сам не ожидал что такое бывает на М128 работает а на М32 нет
PSS
ИМНО И всеравно та связка - условие не есть ГУД
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 19