|
|
  |
AVR Studio 4.15 и ADC, Баги |
|
|
|
Jan 14 2009, 22:28
|

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

|
Цитата(ILYAUL @ Jan 14 2009, 17:50)  При работе в симмуляторах , а их там два , с ADC ничего не получится. Интересно, а что должно было получиться?! ;> Генератор случайных чисел или что? Что вы ждали от "симуляции" ADC? Цитата Применение JTAG отладчика увеличивает скорость отладки на порядок. Да, если пользовать с умом. А если пытаться изменять значения регистров ADCL/ADCH - пользы не будет.
|
|
|
|
|
Jan 15 2009, 11:55
|
Гуру
     
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jan 15 2009, 12:05
|

кекс
     
Группа: Свой
Сообщений: 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 на симуляцию - одним дефайном.
|
|
|
|
|
Jan 16 2009, 13:49
|

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

|
Цитата(SasaVitebsk @ Jan 15 2009, 14:55)  Записывайте число после извлечения из ADC. Какие проблемы? В окне watch никогда не смотрел значения регистров ввода/вывода. Как то не додумался. Только переменные. Для регистров есть спец окно. А с вашими переменными тоже ошибается? Какой компилятор у вас установлен? У меня стоит 4.13sp2. Серьёзных проблем не было. Кстати можно было изменить формат переменной. Особенно это было удобно при работе с указателями. Судя по всему, необходимо слегка обождать с переходом на данную версию. До SP2.  Возможно, что-то не так делаю... ИАР 5.11В не менял уже давно. С типом переменных проблем нет, но иногда я содержимое регистров ввода/вывода пишу в Watch для удобства. Неделю назад три часа "отлаживал" пока не заметил, что вижу только младший байт OCR1A. ))) Студия 4.15 но и в предыдущей так показывает. Но точно помню, что нек время назад такого НЕ БЫЛО. Вообще посмотрите мой скриншот на таймер1 - у вас точно все так же?
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|