|
|
  |
ADC Attiny26, оно не останавливается!? |
|
|
|
Mar 15 2005, 08:38
|

Профессионал
    
Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371

|
запускаю АЦП в режиме однократного преобразования и выдаю результат на порт. передача искажается (уже подставлял заведо нужные значения для передачи). долго разбирался. если АЦП выкл. после получения результата, то все нормально. АВРовцы пишут, что ошибок в МК нет.
ADCSET: ;------------------------------ADC настройка ;---ADMUX ;--b7=1, b6=0 опорное напряжение 2.56 В. без внешнего конденсатора. ;--B5=0 ADCH (b1, b0), ADCL (b7...b0) ;--MUX4...0 =0 выбран ADC0
ldi temp1,0b10000000 ; out ADMUX,temp1 ;
;----ADCSR ;--b7=1 АЦП разрешен ADEN ;--b6=0 запуск АЦП ADSC ;--b5=0 включ. циклический режим ADFR ;--b4=0 чтоб не трогать флаг ADIF ;--b3=1 разрешение прерывания по окончанию преобразования АЦП ADIE ;--b2...0 = 101 предделитель частоты АЦП в 32 раза меньше MCU
ldi temp1,0b00001101 ; out ADCSR,temp1 ; ;----------------------------------------
в проге sbi ADCSR,ADEN ;вкл. АЦП sbi ADCSR,ADSC ;запуск АЦП потом cbi ADCSR,ADEN ;вкл. АЦП
Что скажите?
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
Mar 15 2005, 12:15
|

Частый гость
 
Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29

|
Цитата(arttab @ Mar 15 2005, 11:38) в проге sbi ADCSR,ADEN ;вкл. АЦП sbi ADCSR,ADSC ;запуск АЦП потом cbi ADCSR,ADEN ;вкл. АЦП Что скажите? Ну вот не совсем понятно два момента - 1) зачем выключать АЦП после измерения - вообще-то первое преобразование, хоть и пишется что оно просто дольше работает - недостоверное... и 2) что-то не вижу, где ожидается готовность АЦП (или просто вырезано?)
|
|
|
|
|
Mar 16 2005, 03:12
|

Профессионал
    
Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371

|
я привел настройку АЦП. вот обработчик: ;--------------------ADCEND обработка прерывания от АЦП
ADCEND:
push temp2 ;в стек temp2 in temp2,SREG ;сохран статуса push temp2 ;сохран статуса
in ADL,ADCL ;считывание результата in ADH,ADCH ;АЦП
>>>sbr KEY,(1<<ADCOK) ;ADC OK ADCOK=1 cbi ADCSR,ADEN ;выкл. АЦП
pop temp2 ;востанов в temp2 статуса out SREG,temp2 ;востанов стека POP temp2 ;востан temp2
reti в сроке >>> выставляется бит, что АЦП отработала. а выключать АЦП начал из-за сбоев в програме если не отключать. Появляются прерывания от АЦП когда они не нужны. гогда бит ADCOK выставлен запускается передатчик и отработав cbr KEY,(1<<ADCOK) ; спасибо что решили помочь.
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
Mar 16 2005, 15:30
|

Частый гость
 
Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29

|
Цитата(arttab @ Mar 16 2005, 06:12) в сроке >>> выставляется бит, что АЦП отработала. а выключать АЦП начал из-за сбоев в програме если не отключать. Появляются прерывания от АЦП когда они не нужны. гогда бит ADCOK выставлен запускается передатчик и отработав cbr KEY,(1<<ADCOK) ; спасибо что решили помочь. Я бы все-таки посоветовал АЦП включать только раз - при старте программы. А прерывания от АЦП просто так возникать не могут. Только после запуска преобразования, как отработал. Так что скорее всего где-то ошибка (кстати, а почему вы решили, что возникает прерывание?)
|
|
|
|
|
Mar 17 2005, 16:03
|

Профессионал
    
Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371

|
начинает сбоить передача на комп - задержки появляются.... см. первое сообщение. источникоа прерываний у меня 3: reset, ADC, timer1. по последнему идет передача на комп. и код вставлял в обработчик АЦП - он инвертировать должен был состояние с/д - частил ужасно, а я ведь по кнопке запускал АЦП. Я нашел одну "забавную" ошибку и может она глобально влияла на поведение мк. завтра посмотрю. В студии ни чего не выявил. хотя, когда по началу забыл сохранять рег. статуса при прерываниях, то в ней это и выявил. могу хоть всю прогу выложить - она пока в тестовом варианте и не секретна, но разбираться в чужом коде, наверно, не интересно. поэтому, и спрашиваю у кого чего было с подобным поведением и как потестить.
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|