Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.09.2009, 12:34  
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию АЦП в ATmega48

Помогите разобраться с АЦП

;************************************************* ********
; Инициализация Т1
;************************************************* ********

ldi tmp16,(1‹‹OCIE1A)|(1‹‹OCIE1B)
sts TIMSK1,tmp16
ldi tmp16,(1‹‹WGM10)|(1‹‹WGM11)|(0‹‹COM1A0)|(1‹‹COM1A1 )
sts TCCR1A,tmp16
ldi tmp16,(0‹‹CS00)|(1‹‹CS11)|(0‹‹CS12)|(1‹‹WGM12)|(0‹ ‹WGM13)
sts TCCR1B,tmp16
clr tmp16
sts TCNT1L,tmp16
sts TCNT1H,tmp16
ldi tmp26,(1)
sts OCR1AL,tmp26
ldi tmp27,(255)
sts OCR1AH,tmp27

;************************************************* ********
; Инициализация АЦП
;************************************************* ********

ldi tmp16,(0‹‹MUX0)|(0‹‹MUX1)|(0‹‹MUX2)|(0‹‹MUX3)|(0‹‹ ADLAR)|(1‹‹REFS0)|(1‹‹REFS1)
sts ADMUX,tmp16
ldi tmp16,(1‹‹ADPS0)|(1‹‹ADPS1)|(0‹‹ADPS2)|(1‹‹ADATE)| (0‹‹ADSC)|(1‹‹ADEN)
sts ADCSRA,tmp16
ldi tmp16,(0‹‹ADTS0)|(1‹‹ADTS1)|(1‹‹ADTS2)
sts ADCSRB,tmp16
sei

;************************************************* ********
;
;************************************************* ********

Run:
rjmp Run

;************************************************* ********
;
;************************************************* ********

TIM1_COMPA:
ldi tmp16,(1‹‹ADPS0)|(1‹‹ADPS1)|(0‹‹ADPS2)|(1‹‹ADATE)| (1‹‹ADSC)|(1‹‹ADEN)
sts ADCSRA,tmp16
reti

;************************************************* ********
;
;************************************************* ********

ADC_:
lds tmp26,ADCL
lds tmp27,ADCH
sts OCR1AL,tmp26
sts OCR1AH,tmp27
reti

Программа должна по прерыванию от таймера считывать данные из регистров АЦП и переписывать в регистры сравнения таймера T1.

Но ничего похожего не происходтит.
Реклама:
Gonchar вне форума  
Непрочитано 27.09.2009, 17:12  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Настройте мастером CVAVR и будет работать правильно.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 27.09.2009, 18:50  
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Спасибо за совет, но я с CVAVR не работал.
Gonchar вне форума  
Непрочитано 27.09.2009, 19:16  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Сообщение от Gonchar Посмотреть сообщение
clr tmp16
sts TCNT1L,tmp16
sts TCNT1H,tmp16
Ошибка. Запись производится вначале в старший байт слова.

Сообщение от Gonchar Посмотреть сообщение
ldi tmp26,(1)
sts OCR1AL,tmp26
ldi tmp27,(255)
sts OCR1AH,tmp27
То же самое.
Сообщение от avr123-nm-ru Посмотреть сообщение
lds tmp27,ADCH
sts OCR1AL,tmp26
sts OCR1AH,tmp27
И опять...
Исправляйте.
Похоже форум слегка глючит - третья цитата от того же автора, а не от avr123-nm-ru.
kison вне форума  
Непрочитано 27.09.2009, 20:32  
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Все исправленно, а не работает
Gonchar вне форума  
Непрочитано 27.09.2009, 21:29  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Вы бы весь исходник привели. Вектора например - вдруг там пусто. Гадать на кофейной гуще неинтересно.
kison вне форума  
Непрочитано 27.09.2009, 22:01  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: АЦП в ATmega48

И напишите что получить хотите. Лазить по даташиту и смотреть в какой режим что настроено тоже неинтересно.
kison вне форума  
Непрочитано 27.09.2009, 23:37  
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Re: АЦП в ATmega48

.cseg
.org 0x000 rjmp RESET ; Reset Handler
.org 0x00B rjmp TIM1_COMPA ; Timer1 Compare A Handler
.org 0x015 rjmp ADC_ ; ADC Conversion Complete Handler

;************************************************* ********
; Инициализация микроконтроллера AVR
;************************************************* ********
Reset:
ldi tmp16,high(RAMEND)
out sph,tmp16
ldi tmp16,low(RAMEND)
out spl,tmp16

;************************************************* ********
; Инициализация портов
;************************************************* ********


ldi tmp16,(1‹‹PB1)
out DDRB,tmp16
ldi tmp16,(0‹‹PC0)
out DDRC,tmp16


Осталное было выше...

Программа должна по прерыванию от таймера считывать данные из регистров АЦП и переписывать в регистры сравнения таймера T1.

Регулировка ШИМ
Gonchar вне форума  
Непрочитано 27.09.2009, 23:52  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: АЦП в ATmega48

Сообщение от Gonchar Посмотреть сообщение
Программа должна по прерыванию от таймера считывать данные из регистров АЦП и переписывать в регистры сравнения таймера T1.
Ну-ну. Задача ясна. А теперь смотрим реализацию:

Сообщение от Gonchar Посмотреть сообщение
TIM1_COMPA:
ldi tmp16,(1‹‹ADPS0)|(1‹‹ADPS1)|(0‹‹ADPS2)|(1‹‹ADATE)| (1‹‹ADSC)|(1‹‹ADEN)
sts ADCSRA,tmp16
reti
Здесь есть перезапись значения из регистров АЦП в регистры сравнения таймера?

Зато у нас есть обработчик прерывания от АЦП, который никогда правда не вызовется, ведь бит ADIE в ADCSRA не взводится.
А еще есть веселый запуск АЦП - по прерыванию от таймера 1 по переполнению. Которого тоже никогда не будет если таймер в режиме шим. Почему не используется режим free run? И зачем настраивать режим на аппаратный запуск, если хочется запускать АЦП в прерывании от таймера?
Тут программа из кучи несуразностей и пока Вы не опишете алгоритм простым человеческим языком помочь Вам сможет только настоящий телепат. Я, к сожалению, подобным даром не обладаю.
Посмотрел режим таймера. Прерывание от него все же будет. Но мне уже надоело Вытягивать клещами инфу. Удачи в поисках багов!

Последний раз редактировалось kison; 27.09.2009 в 23:58.
kison вне форума  
Непрочитано 28.09.2009, 18:07  
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Re: АЦП в ATmega48

kison, благодарю за разъяснения, сейчас попробую исправить
Gonchar вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot