Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR Studio 4.15 и ADC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ILYAUL
Просто для информации.
При работе в симмуляторах , а их там два , с ADC ничего не получится. Симмулятор(назовём его 1) повиснет сразу при выходе из SLEEP, симмулятор2 ( так он и означен) будет постоянно сбрасывать значения регистров ADCL и ADCH и не даст возможность установить биты в старших битах ADCH . Проверялось для Atmega164 . Я отписался в поддержку Atmel , они озадачились ( свой код я им приложил , провереный на практике и версии 4.14). Так , что ждём новую ревизию.
Если интересно проверьте для других чипов
_Pasha
Учитывая то, что с их симулятора толку, как с козла молока, новость не огорчает.
SasaVitebsk
Да нет симулятор изредка конкретно помогает, но в основном при отладке незначительной по объёмам сложно прогнозируемым участкам. В основном не связанном с переферией.

2 ILYAUL. Применение JTAG отладчика увеличивает скорость отладки на порядок. При нынешней их стоимости - реальная отдача даже для единичных проектов.
defunct
Цитата(ILYAUL @ Jan 14 2009, 17:50) *
При работе в симмуляторах , а их там два , с ADC ничего не получится.

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

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

Да, если пользовать с умом. А если пытаться изменять значения регистров ADCL/ADCH - пользы не будет.
ivainc1789
И в правду, чего ожидать от записи в ADCH/L???
А вот почему у меня в окне Watch OCR1A вдруг стал unsigned char никак не могу понять... И так с большинством 16р регистров...
ILYAUL
Цитата(defunct @ Jan 15 2009, 01:28) *
Интересно, а что должно было получиться?! ;>
Генератор случайных чисел или что? Что вы ждали от "симуляции" ADC?


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

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

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

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

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

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

Возможно, что-то не так делаю... ИАР 5.11В не менял уже давно. С типом переменных проблем нет, но иногда я содержимое регистров ввода/вывода пишу в Watch для удобства. Неделю назад три часа "отлаживал" пока не заметил, что вижу только младший байт OCR1A. )))
Студия 4.15 но и в предыдущей так показывает. Но точно помню, что нек время назад такого НЕ БЫЛО. Вообще посмотрите мой скриншот на таймер1 - у вас точно все так же?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.