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

 
 
 
Reply to this topicStart new topic
> ADC Attiny26, оно не останавливается!?
arttab
сообщение Mar 15 2005, 08:38
Сообщение #1


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

Группа: Свой
Сообщений: 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....
Go to the top of the page
 
+Quote Post
nml
сообщение Mar 15 2005, 12:15
Сообщение #2


Частый гость
**

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



Цитата(arttab @ Mar 15 2005, 11:38)
в проге
sbi  ADCSR,ADEN  ;вкл. АЦП
sbi  ADCSR,ADSC  ;запуск АЦП
потом
cbi  ADCSR,ADEN  ;вкл. АЦП

Что скажите?
*

Ну вот не совсем понятно два момента - 1) зачем выключать АЦП после измерения - вообще-то первое преобразование, хоть и пишется что оно просто дольше работает - недостоверное... и 2) что-то не вижу, где ожидается готовность АЦП (или просто вырезано?)
Go to the top of the page
 
+Quote Post
arttab
сообщение Mar 16 2005, 03:12
Сообщение #3


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

Группа: Свой
Сообщений: 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....
Go to the top of the page
 
+Quote Post
nml
сообщение Mar 16 2005, 15:30
Сообщение #4


Частый гость
**

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



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


Я бы все-таки посоветовал АЦП включать только раз - при старте программы. А прерывания от АЦП просто так возникать не могут. Только после запуска преобразования, как отработал. Так что скорее всего где-то ошибка (кстати, а почему вы решили, что возникает прерывание?)
Go to the top of the page
 
+Quote Post
arttab
сообщение Mar 17 2005, 16:03
Сообщение #5


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

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



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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
arttab
сообщение Mar 21 2005, 02:46
Сообщение #6


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

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



Похоже я погоричился. оно останавливается, но откудато появляются задержки при передаче.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post

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

 


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


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