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

 
 
 
Reply to this topicStart new topic
> AVR Studio 4.15 и ADC, Баги
ILYAUL
сообщение Jan 14 2009, 15:50
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Просто для информации.
При работе в симмуляторах , а их там два , с ADC ничего не получится. Симмулятор(назовём его 1) повиснет сразу при выходе из SLEEP, симмулятор2 ( так он и означен) будет постоянно сбрасывать значения регистров ADCL и ADCH и не даст возможность установить биты в старших битах ADCH . Проверялось для Atmega164 . Я отписался в поддержку Atmel , они озадачились ( свой код я им приложил , провереный на практике и версии 4.14). Так , что ждём новую ревизию.
Если интересно проверьте для других чипов


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 14 2009, 18:25
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Учитывая то, что с их симулятора толку, как с козла молока, новость не огорчает.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 14 2009, 21:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Да нет симулятор изредка конкретно помогает, но в основном при отладке незначительной по объёмам сложно прогнозируемым участкам. В основном не связанном с переферией.

2 ILYAUL. Применение JTAG отладчика увеличивает скорость отладки на порядок. При нынешней их стоимости - реальная отдача даже для единичных проектов.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 14 2009, 22:28
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ILYAUL @ Jan 14 2009, 17:50) *
При работе в симмуляторах , а их там два , с ADC ничего не получится.

Интересно, а что должно было получиться?! ;>
Генератор случайных чисел или что? Что вы ждали от "симуляции" ADC?

Цитата
Применение JTAG отладчика увеличивает скорость отладки на порядок.

Да, если пользовать с умом. А если пытаться изменять значения регистров ADCL/ADCH - пользы не будет.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Jan 15 2009, 05:47
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



И в правду, чего ожидать от записи в ADCH/L???
А вот почему у меня в окне Watch OCR1A вдруг стал unsigned char никак не могу понять... И так с большинством 16р регистров...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 15 2009, 09:06
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(defunct @ Jan 15 2009, 01:28) *
Интересно, а что должно было получиться?! ;>
Генератор случайных чисел или что? Что вы ждали от "симуляции" ADC?


У меня вычисление средне-арифмитического завязано с ADC - просто записывал в регистр число- зацикливал и проверял формулу


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 15 2009, 11:55
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(ILYAUL @ Jan 15 2009, 13:06) *
У меня вычисление средне-арифмитического завязано с ADC - просто записывал в регистр число- зацикливал и проверял формулу

Записывайте число после извлечения из ADC. Какие проблемы?

Цитата(ivainc1789)
А вот почему у меня в окне Watch OCR1A вдруг стал unsigned char никак не могу понять... И так с большинством 16р регистров...

В окне watch никогда не смотрел значения регистров ввода/вывода. Как то не додумался. Только переменные. Для регистров есть спец окно.
А с вашими переменными тоже ошибается? Какой компилятор у вас установлен?

У меня стоит 4.13sp2. Серьёзных проблем не было. Кстати можно было изменить формат переменной. Особенно это было удобно при работе с указателями.

Судя по всему, необходимо слегка обождать с переходом на данную версию. До SP2. smile.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 15 2009, 12:05
Сообщение #8


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ILYAUL @ Jan 15 2009, 11:06) *
У меня вычисление средне-арифмитического завязано с ADC - просто записывал в регистр число- зацикливал и проверял формулу

Дык, подмените функцию чтения АЦП, на какую-то такую для симуляции:

Код
#define SIMULATE_ADC  (TRUE)  

#define COUNT(some_array) ( sizeof(some_array)/sizeof((some_array)[0]) )


#if (SIMULATE_ADC)
U16 read_adc(void)
{
    static U8 __flash a[] = { 1, 2, 4, 16, 32, 36, 37, 35, 32, 17, 5, 3, 2};


    static U8 read_index = 0;
    U16 retval;

    retval = a[ read_index++];
    if (read_index >= COUNT( a ))
        read_index = 0;

    return retval;
}
#else

/// тут функция чтения HW АЦП.
U16 read_adc(void)
{
    ...
    return ADC;
}
#endif


Задавать числа будет удобно, и структура проекта остается без изменений. Переключение с HW на симуляцию - одним дефайном.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Jan 16 2009, 13:49
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(SasaVitebsk @ Jan 15 2009, 14:55) *
Записывайте число после извлечения из ADC. Какие проблемы?
В окне watch никогда не смотрел значения регистров ввода/вывода. Как то не додумался. Только переменные. Для регистров есть спец окно.
А с вашими переменными тоже ошибается? Какой компилятор у вас установлен?
У меня стоит 4.13sp2. Серьёзных проблем не было. Кстати можно было изменить формат переменной. Особенно это было удобно при работе с указателями.
Судя по всему, необходимо слегка обождать с переходом на данную версию. До SP2. smile.gif

Возможно, что-то не так делаю... ИАР 5.11В не менял уже давно. С типом переменных проблем нет, но иногда я содержимое регистров ввода/вывода пишу в Watch для удобства. Неделю назад три часа "отлаживал" пока не заметил, что вижу только младший байт OCR1A. )))
Студия 4.15 но и в предыдущей так показывает. Но точно помню, что нек время назад такого НЕ БЫЛО. Вообще посмотрите мой скриншот на таймер1 - у вас точно все так же?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


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


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