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

 
 
> ADC Noise Reduction
white.wind
сообщение Jun 9 2006, 10:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 2-05-06
Из: Санкт-Петербург
Пользователь №: 16 707



Не получается съэмулировать (для начала) такой режим на VMLAB.

Из всех найденных описаний (рабочих примеров не встретил) я понял, что после установки режима проц должен остановится потом отработать прерывание ADC и продолжить выполнение основного кода. Делал так:

Код
...
ISR (ADC_vect)
{
    // Тут ничего
}
...

void main(void)
{
    init_uart();
    init_adc();

    sei();
    
    while(1)
    {

        ADCSRA |= (1<<ADSC);    // Запуск преобразования

        MCUCR |= (1<<7);        // Разрешение засыпания
        MCUCR |= (1<<SM0);    // Включение в ADC Noise Reduction

        uart_putchar(ADCH);        // ADCH, поскольку 8-ми разрядный режим.

    }
}


Пробовал разные вариации, первой была сначала разрешить засыпание, потом инициировать преобразование, потом включить режим ADC Noise Reduction. Все равно не получается.

Общая картина такова, не взирая на желание усыпить проц, он продолжает выполнять команды. Изредка цикл прерывается выполненным преобразованием.

Может быть инициировать преобразование после переключения в ADC NR режим? Но по идее, к этому времени он уже должен спать.

Подскажите как побороть этот режим help.gif

PS. Заметил странность VMLAB бит SE регистра MCUCR считает 6-тым, в то время как по ДШ он 7-ой (последний). Я пробовал и так и так. Камень - Atmega32.
Go to the top of the page
 
+Quote Post



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

 


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


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