Например TDA7294

Форум РадиоКот :: Просмотр темы - Preoteus + AVR: некорректная эмуляция инкремента
Форум РадиоКот
https://radiokot.ru/forum/

Preoteus + AVR: некорректная эмуляция инкремента
https://radiokot.ru/forum/viewtopic.php?f=57&t=189961
Страница 1 из 1

Автор:  quwy [ Сб сен 16, 2023 05:05:58 ]
Заголовок сообщения:  Preoteus + AVR: некорректная эмуляция инкремента

Всем привет!

Столкнулся с проблемой некорректной эмуляции MCU в Proteus. Причем, не из каких-то закоулков даташита, типа записи в EEPROM при включенном делителе частоты PLL, а в самой базовой инструкции ST Z, Rr.

Если коротко, то в относительно большом проекте то тут то там на разных стадиях отладки наблюдается странное поведение индексных переменных в циклах. Каким-то странным образом при обычном инкременте++ значение переменной после 0 становится, как и положено, 1, а при следующем инкременте -- сразу 0xFD. Это поведение появляется и исчезает в зависимости от кода в других местах проекта, от настроек оптимизации, даже от типа одной единственной переменной в противоположном углу проекта.

Анализ показал, что ошибается не компилятор, а именно эмулятор. Выполняя банальную инструкцию ST Z, Rr он в один прекрасный момент почему-то побитово инвертирует значение, записываемое в [Z]. В итоге вместо числа 0x02, находящегося в регистре, в память пишется 0xFD.

Никто не сталкивался?

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/