|
|
  |
запуск АЦП в режиме подавления шумов |
|
|
|
Mar 23 2008, 10:13
|
Группа: Новичок
Сообщений: 3
Регистрация: 23-03-08
Пользователь №: 36 152

|
Здравствуйте! Помогите, пожалуйста. В даташите написано, что преобразования должно запускаться автоматически при переходе в режим sleep или idle, но почему то не запускаеться ) если перед командой sleep самому запустить преобразование, то работает нормально.
И еще один вопрос, будет ли работать ШИМ пока микроконтроллер находиться в режиме sleep или idle ?
#include <m8def.inc>
.def temp=r16 .def char=r17
.cseg .org 0x000 rjmp start
.org adccaddr nop reti
start:
ldi temp, 0b00011000 out wdtcr, temp ;watchdog disabled cbr temp, 0b00001000 out wdtcr, temp
clr temp out ddrc, temp ;порт С на вход out portc, temp
ldi temp, 0xff ;порт D - выход out ddrd, temp clr temp out portd, temp
ldi temp, 0b10001111 ;вкл. АЦП, прерывания по завершению преобразования, скорость 128 out adcsra, temp
ldi temp, 0b00100000 ;используем АЦП0, левый сдвиг результата out admux, temp
sei ;глобальное разрешение прерываний
ldi temp, 0b10010000 ;режим подавления шумов включен out mcucr, temp
A1: ;sbi adcsra, adsc sleep
in temp, adcl in temp, adch out portd, temp rjmp A1
Сообщение отредактировал OLMER - Mar 23 2008, 10:17
|
|
|
|
|
Mar 25 2008, 05:23
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(OLMER @ Mar 23 2008, 15:13)  ldi temp, 0b10010000 ;режим подавления шумов включен out mcucr, temp Для какого контроллера эта команда? SE бит не установлен соответственно проц не засыпает.
|
|
|
|
|
Mar 25 2008, 19:36
|
Группа: Новичок
Сообщений: 3
Регистрация: 23-03-08
Пользователь №: 36 152

|
Цитата(viakon @ Mar 25 2008, 08:23)  Для какого контроллера эта команда? SE бит не установлен соответственно проц не засыпает. ATmaega8 MCUCR SE |SM2 |SM1 |SM0 |ISC11 |ISC10 |ISC01 |ISC00
|
|
|
|
|
Mar 26 2008, 22:01
|
Группа: Новичок
Сообщений: 3
Регистрация: 23-03-08
Пользователь №: 36 152

|
Цитата(viakon @ Mar 26 2008, 14:46)  Странно, у всех попадавшихся мне мег SE бит 6-й , а у этой 7-й. Обычно все переферийные регистры совпадают Микроконтроллер засыпает. После засыпания должно автоматически запускаться считывание результата АЦП, но оно почему то не запускается, вот в этом и проблема! Если перед уходом в спячку самому запустить считывание АЦП, то все работает нормально. Может так и нужно делать, но в даташите написано, что считывание в режиме подавления шумов АЦП, запускается автоматически после команды sleep.
|
|
|
|
Guest_Цыкетчик_*
|
Sep 24 2008, 13:09
|
Guests

|
Цитата(MTh @ Mar 27 2008, 09:15)  может надо включить режим FREERUN?  Не "может", а обязательно нужно включить. Иначе проц в режиме "ADC Noise Reduction" не проснётся
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|