Коллекция глюков Здесь публикуются все известные глюки, баги микроконтроллеров, памяти, АЦП и т.д. |
23.04.2008, 10:01
|
|
Вид на жительство
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
|
|
|
|
25.04.2008, 18:59
|
|
Вид на жительство
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Собираем глюки и "подводные камни" AVR и AVR S
|
|
|
|
27.06.2008, 10:08
|
|
Частый гость
Регистрация: 07.07.2004
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
У меня был такой глюк.
при использовании AVR-студии совместно с WinAVR (я пишу на С) не работали конструкции типа
unsigned char a;
if (~a == const) {блок операторов}
блок никогда невыполнялся независимо от значения a.
оказалось что перед инверсиейкомпилятор размещает а в ДВУХ регистрах (несмотря на то что это char) потом инвертирует а потом сравнивает.
причем выражение под if-ом сравнивается всегда в в двухбайтовом режиме, независимо от типа данных.
пришлось изменить код на следующий
unsigned char a;
a = ~a;
if (a == const) {блок операторов}
все работает.
|
|
|
|
19.08.2008, 17:00
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 583
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
|
Сообщение от ru
|
У меня был такой глюк.
при использовании AVR-студии совместно с WinAVR (я пишу на С) не работали конструкции типа
unsigned char a;
if (~a == const) {блок операторов}
блок никогда невыполнялся независимо от значения a.
оказалось что перед инверсиейкомпилятор размещает а в ДВУХ регистрах (несмотря на то что это char) потом инвертирует а потом сравнивает.
причем выражение под if-ом сравнивается всегда в в двухбайтовом режиме, независимо от типа данных.
пришлось изменить код на следующий
unsigned char a;
a = ~a;
if (a == const) {блок операторов}
все работает.
|
Истинно так, есть такая глючина!
Кто-нить работал с tiny13
Там в нем одном глюков на целый форум.
Писал под WinAVR, надо было шим генератор забабахать...
Чуть не свихнулся.
|
|
|
|
14.02.2009, 15:13
|
|
Прохожий
Регистрация: 07.10.2007
Сообщений: 2
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Встречал кто такой глюк?
AVRStudio после какогото времени перестала запускать отладку, но только если прога на С !!!
вот скрин ошибки:
-- Прилагается рисунок: --
|
|
|
|
07.03.2009, 01:42
|
|
Частый гость
Регистрация: 22.10.2008
Сообщений: 15
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Edit: Same behaviour observed on ATMega32 (rev B), but not confirmed from Atmel on this part.
Edit: received 8/8 2005:
Quote:
We confirm that we have a bug on this function and writing to any of
tcnt2, tccr2 or tocr2 will clear the flags in t2 async register, tov2
and ocf2, regardless of any pending event that would set the flags
(capture or roll-over).
Workaround : do not write to any of tcnt2, tccr2 or tocr2 will clear the
flags in t2 async register, tov2 and ocf2 when the Timer2 is running.
We are working on a correction on the chip.
|
|
|
|
06.10.2009, 16:36
|
|
Прохожий
Регистрация: 06.10.2009
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Собираем глюки и "подводные камни" AVR и AVR Studi
если в асм коде перед числом поставить любой знак, например +, то он его воспримет как -.
версия 3. с чем- то
|
|
|
|
20.10.2009, 12:04
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Собираем глюки и "подводные камни" AVR и AVR Studi
При включенном прерывании на 0-м таймере в 2313 по совпадению (Compare A), в симуляторе АВР студио вплоть до самой последней версии при ручной установке бита прерывания TIFR bit 0 не срабатывает прерывание, а просто сбрасывается бит. Но... если таймер сам досчитает до указанного значения compare A (OCRA0=100) то прерывание нормально вызывается. Зашитая в контроллер прошивка тоже нормально работает. Прерывание от 1-го таймера вызывается нормально хоть в ручную хоть при досчёте до нужного значения. (Программа писана на asm на Си данную проблему не проверял).
Стыдно-стыдно, столько людей поработало над АВР-студио, а результат слабый.
|
|
|
|
16.12.2009, 22:43
|
|
Временная регистрация
Регистрация: 27.01.2008
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Собираем глюки и "подводные камни" AVR и AVR Studi
вот такой вопрос атмега16 и 32 . на вход а и д кнопки на землю и протягивающие резисторы на питания. с и д выходы.
кнопки срабатывают 2 с разу. а не одна.
на выходе с3-с6 лог 1. хотя программа в 0. в протеусе работает. программирую.
сам процессор глючить. 3 штуки поменял.
|
|
|
|
04.02.2010, 21:35
|
|
Временная регистрация
Регистрация: 05.09.2009
Сообщений: 50
Сказал спасибо: 9
Сказали Спасибо 26 раз(а) в 10 сообщении(ях)
|
Re: Собираем глюки и "подводные камни" AVR и AVR Studi
В окне "Disassembler" отображается такой код:
Код:
|
+000001E9: 940E0000 CALL 0x00000000 Call subroutine |
Но вызов осуществляется по правильному адресу. AVR Studio 4.18.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:24.
|
|