реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> отладка в IAR. проблемы со счётчиком.
srm
сообщение Jan 8 2010, 20:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



создаю проект для atmega32. в программе устанавливаю необходимые флаги в управляющих регистрах таймера. при отладке на эмуляторе почему-то значение TCNT не меняется. код рабочий - проверял на VMLAB.

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


скорее всего неправильно настроен проект. не могу найти причину.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 8 2010, 21:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Если грешите на настройки проекта, то и выкладывайте весь проект (с указанием версии компилятора), а не какой-то "огрызок" исходника.
Go to the top of the page
 
+Quote Post
srm
сообщение Jan 8 2010, 22:14
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



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

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

IAR C/C++ Compiler for AVR
5.30.0 (5.30.0.50166)

Сообщение отредактировал srm - Jan 8 2010, 22:17
Прикрепленные файлы
Прикрепленный файл  bag.rar ( 11.64 килобайт ) Кол-во скачиваний: 15
 
Go to the top of the page
 
+Quote Post
plombir
сообщение Jan 9 2010, 06:39
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Цитата(srm @ Jan 8 2010, 23:49) *
создаю проект для atmega32. ...

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

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

Симулятор в IAR-е не эмулирует периферию. WD, таймеры и т.п. как в AVR studio не работают.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 9 2010, 10:39
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(plombir @ Jan 9 2010, 11:39) *
Симулятор в IAR-е не эмулирует периферию. WD, таймеры и т.п. как в AVR studio не работают.
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет? cranky.gif
Go to the top of the page
 
+Quote Post
srm
сообщение Jan 9 2010, 12:17
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



rezident
Цитата
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет?


не нужно пижонствовать. знали бы - ответили бы. что касается слова "эмулятор", то я употребил его правильно (см. wiki). терпеть не могу пижонство.

Сообщение отредактировал srm - Jan 9 2010, 12:18
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 9 2010, 12:25
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(srm @ Jan 9 2010, 17:17) *
не нужно пижонствовать. знали бы - ответили бы. что касается слова "эмулятор", то я употребил его правильно (см. wiki). терпеть не могу пижонство.
Причем тут какое-то мнимое пижонство? Если вы используете эмулятор (дебаггер, аппаратный отладчик), то результат работы таймера зависит от того правильно ли вы проинициализировали его самого и его источники тактирования. Если же вы используете симулятор (программный модуль симулирующий работу "железа"), то результат зависит от качества модели таймера и корректности работы с ним этой программы-симулятора. Вам указали, что в IAR работа периферии НЕ симулируется. В симуляторе IAR с помощью макросов можно реализовать только симуляцию прерываний от периферийных модулей. Где тут вы рассмотрели пижонство?
Go to the top of the page
 
+Quote Post
plombir
сообщение Jan 9 2010, 17:56
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Цитата(rezident @ Jan 9 2010, 13:39) *
Я поначалу хотел похожий ответ написать, но топикстартер написал эмулятор, а не симулятор. Я думаю, что он знает разницу между ними. Или нет? cranky.gif

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

---

2 srm!
Вы слишком категоричны и к тому же - не правы. Человек под ником rezident один из не многих в этом форуме, кто реально помогает и делится своими наработками.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016