Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: отладка в IAR. проблемы со счётчиком.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
srm
создаю проект для atmega32. в программе устанавливаю необходимые флаги в управляющих регистрах таймера. при отладке на эмуляторе почему-то значение TCNT не меняется. код рабочий - проверял на VMLAB.

Код
void main()
{
    TCCR0 = (1 << CS00);
    TCNT0 = 0;
    
    while (1)
    {
        volatile int x = 0;
        x = ~x;
    }
}


скорее всего неправильно настроен проект. не могу найти причину.
rezident
Если грешите на настройки проекта, то и выкладывайте весь проект (с указанием версии компилятора), а не какой-то "огрызок" исходника.
srm
Цитата(rezident @ Jan 9 2010, 02:42) *
Если грешите на настройки проекта, то и выкладывайте весь проект (с указанием версии компилятора), а не какой-то "огрызок" исходника.

дело не в исходнике. огрызок исходника я выложил чтобы было видно, что ошибка не в коде. я думал, что проблема в настройках - раньше с IAR'ом не работал. все настройки перерыл - ничего не нашёл. в AVRStudio всё пашет, в VMLAB тоже.

IAR C/C++ Compiler for AVR
5.30.0 (5.30.0.50166)
plombir
Цитата(srm @ Jan 8 2010, 23:49) *
создаю проект для atmega32. ...

Код
    while (1)
    {
        volatile int x = 0;
        x = ~x;
    }

X - не статическая переменная. Она всегда будет обнуляться. Так задумано?

Симулятор в IAR-е не эмулирует периферию. WD, таймеры и т.п. как в AVR studio не работают.
rezident
Цитата(plombir @ Jan 9 2010, 11:39) *
Симулятор в IAR-е не эмулирует периферию. WD, таймеры и т.п. как в AVR studio не работают.
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет? cranky.gif
srm
rezident
Цитата
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет?


не нужно пижонствовать. знали бы - ответили бы. что касается слова "эмулятор", то я употребил его правильно (см. wiki). терпеть не могу пижонство.
rezident
Цитата(srm @ Jan 9 2010, 17:17) *
не нужно пижонствовать. знали бы - ответили бы. что касается слова "эмулятор", то я употребил его правильно (см. wiki). терпеть не могу пижонство.
Причем тут какое-то мнимое пижонство? Если вы используете эмулятор (дебаггер, аппаратный отладчик), то результат работы таймера зависит от того правильно ли вы проинициализировали его самого и его источники тактирования. Если же вы используете симулятор (программный модуль симулирующий работу "железа"), то результат зависит от качества модели таймера и корректности работы с ним этой программы-симулятора. Вам указали, что в IAR работа периферии НЕ симулируется. В симуляторе IAR с помощью макросов можно реализовать только симуляцию прерываний от периферийных модулей. Где тут вы рассмотрели пижонство?
plombir
Цитата(rezident @ Jan 9 2010, 13:39) *
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет? cranky.gif

Я так и понял. С таким примером кода, как у ТС, 99% в "начинающем" форуме и в этой теме путает симулятор с эмулятором. Но то, что Вы не ответили, заставило меня полезть в help. Убедился, что в IAR 5.3 новый симулятор не появился. smile.gif

---

2 srm!
Вы слишком категоричны и к тому же - не правы. Человек под ником rezident один из не многих в этом форуме, кто реально помогает и делится своими наработками.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.