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

 
 
> 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
 
Start new topic
Ответов
defunct
сообщение Jan 14 2009, 22:28
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 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
ILYAUL
сообщение Jan 15 2009, 09:06
Сообщение #3


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

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



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


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


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

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


кекс
******

Группа: Свой
Сообщений: 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



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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 10:15
Рейтинг@Mail.ru


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