проблемы с ацп atmega8

Обсуждаем контроллеры компании Atmel.
Ответить
pimple2006
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср фев 08, 2012 22:58:32
Откуда: Лебедянь

проблемы с ацп atmega8

Сообщение pimple2006 »

здравствуйте,задача была подключить акселерометр mma7361 к atmega8,возникли трудности.По началу копировал с сайта работу с ацп на асме и решил проверить на делителе напряжения,диод при включенном питании делителя тух,при выключенном - загорался.Припаял акселерометр(ось у) - ноль эмоций,сейчас после редактирования кода не работает ничего :cry: прошу помощи

Код: Выделить всё

.include "C:\Appnotes\m8def.inc"

 .def     Temp=R16
 .def     Temp1=R17
 .def     Temp2=R18
 .def     Temp3=R19
 .def     Temp4=R20

 .cseg
 .org 0

ldi  temp,low(RAMEND)            
out  SPL,temp
ldi  temp,high(RAMEND) ; Stack Pointer = $45F
out  SPH,temp

cli       ; запретить прерывания

ldi temp, 0b10000011  ; Вкл. Ацп, Однокр. преобр., Прерывание запрещено, СК/8 (125 kHz)
out ADCSR, temp
ldi temp, 0b01100000  ; AVcc, Внеш. конд. на Aref, Выравн. по лев. краю, channel 1.23V bg
out ADMUX, temp

ldi Temp3,0b11111111  ;присвоение константы
out DDRD,Temp         ;вывод

rcall adc_convert


main:
rcall adc_convert
cpi temp,75
brge OF
 ON: 
 ldi temp3,0b01000000
 out PortD,temp3
 rjmp main
 
 OF:
 ldi temp3,0b00000000
 out PortD,temp3
 rjmp main


adc_convert:
out ADMUX, temp    ; wreg contains channel
sbi ADCSR, ADSC    ; Start Convertion
sbic ADCSR , ADSC
rjmp PC-1
in temp, ADCL    ; просто формальность (первым всегда читается ADCL)
in temp, ADCH    ; wreg contains result

ret
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: проблемы с ацп atmega8

Сообщение Engineer_Keen »

Для начала поправить это:

Код: Выделить всё

adc_convert:
out ADMUX, temp    ; wreg contains channel
в temp у вас результат оцифровки и вы его при следующем rcall adc_convert пихаете в ADMUX. Или выкиньте эту строку (вы в процессе работы все равно не меняете канал АЦП и прочие его настройки, или перед ней вставьте загрузку в temp правильной константы.
И вот тут по-моему опечатка:

Код: Выделить всё

ldi Temp3,0b11111111  ;присвоение константы
out DDRD,Temp        ;вывод
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: проблемы с ацп atmega8

Сообщение pyzhman »

Вы в ADMUX-то гляньте чего засылаете.
Docendo discimus
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: проблемы с ацп atmega8

Сообщение COKPOWEHEU »

in temp, ADCL ; просто формальность (первым всегда читается ADCL)
Что за бред. Запуск преобразования потому и настроен на чтение ADCH что для 8-битного результата, когда ADCL не нужен, его и не читают.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: проблемы с ацп atmega8

Сообщение FreshMan »

изучаю работу АЦП......, для меня остается непонятным один момент: в каких случаях надо выбирать опорноет на 5В а в каких на 2,56 В ? :dont_know:
помогите разобраться, пожалуйста.
Tell Me The Truth
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: проблемы с ацп atmega8

Сообщение Engineer_Keen »

Допустим нужно мерить например от 0 до 2В, то если выбрать опорное 5В, то разрешающая способность будет 5/1024 = 5мВ, а если выбрать 2.56, то 2.56/1024=2.5мВ
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: проблемы с ацп atmega8

Сообщение FreshMan »

я так понимаю 5мВ это более приемлемый вариант
есть еще какие-либо критерии отбора ?
Tell Me The Truth
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: проблемы с ацп atmega8

Сообщение Myp3ik »

Нет, лучше 2,5мВ. Другими словами, что лучше, точность +-2,5мВ, или +-5мВ ?
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: проблемы с ацп atmega8

Сообщение pyzhman »

Вещи интереснее измерять соизмеримыми мерами. Человека килограммами, а вагоны тоннами.
Docendo discimus
Ответить

Вернуться в «AVR»