Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков. |
15.02.2012, 11:37
|
|
Временная регистрация
Регистрация: 06.04.2008
Сообщений: 54
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
ADC ATMega8
Помогите плз, вроде все написал, все понял, все перепроверил.... нихатит.
Invalid opcode 0xFFFF at PC=0x01E2
Хотел в принципе простую весчь. Чтобы результат хотя бы первых 8 старших битов преобразования выставлялся на порт и зажигались диоды.
вот программа, проект прилагаю
Код:
|
.include "m8def.inc"
.cseg
.org 0
;===== Инициализация стека======
ldi R16,high(RamEnd)
out SPH,R16
ldi R16,low(RamEnd)
out SPL,R16
;===== Настройка АЦП =====
out DDRC, R17
out PORTC, R17
ldi R17, 0b00100000 //AREF=5V, ADC0
out ADMUX, R17
ldi R17, 0
ldi R17, 0b10100111 //АЦП вкл, непрерывное, прерывание нет, CK/128
out ADCSRA, R17
;===== ОМГ Delay =====
Delay:
ldi R20,0
ldi R21,0
ldi R22,10
Loop:
dec R20
brne Loop
dec R21
brne Loop
dec R22
brne Loop
ret
;===== Настройка портов =====\
ldi R17,255 // настраиваю порт В на выход
out DDRB,R17
ldi R17,0
out PORTB,R17
;===== ADC_convert ========
main:
rcall delay
in R19, ADCL
in R19, ADCH // читаю результат преобразования
out PORTB, R19 // выставляю результат на порт В
rjmp main |
Последний раз редактировалось lolodin; 15.02.2012 в 11:43.
|
|
|
|
15.02.2012, 12:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: ADC ATMega8
Сообщение от lolodin
|
Invalid opcode 0xFFFF at PC=0x01E2
|
ИМХО, не хватает перехода на main после настройки АЦП.
Сейчас у Вас после настройки выполняется Delay, и по ret проц вылетает неизвестно куда.
|
|
|
Сказали "Спасибо" AJScorp
|
|
|
15.02.2012, 12:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,007
Сказал спасибо: 3,023
Сказали Спасибо 3,194 раз(а) в 2,166 сообщении(ях)
|
Re: ADC ATMega8
Сообщение от AJScorp
|
ИМХО, не хватает перехода на main после настройки АЦП.
|
Точнее - к настройке портов.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
15.02.2012, 13:31
|
|
Временная регистрация
Регистрация: 06.04.2008
Сообщений: 54
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: ADC ATMega8
Благодарю господа хорошие, помогло.
Последний раз редактировалось lolodin; 15.02.2012 в 13:52.
|
|
|
|
15.02.2012, 15:50
|
|
Временная регистрация
Регистрация: 06.04.2008
Сообщений: 54
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: ADC ATMega8
А для устранения шумов на входе АЦП есть ли спец фильтры-микросхемы или достаточно дросселя и конденсатора?
|
|
|
|
15.02.2012, 22:22
|
|
Временная регистрация
Регистрация: 18.07.2006
Сообщений: 90
Сказал спасибо: 8
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
|
Re: ADC ATMega8
Устранение шумов по питанию наводящих на АЦП - дроссель.
Устранение шумов по входу АЦП - цифровые фильтры или аналоговые, LC например или на операционных усилителях.
Простейший вариант цифрового фильтра - вычисление среднего арифметического за n выборок.
|
|
|
|
16.02.2012, 06:41
|
|
Временная регистрация
Регистрация: 06.04.2008
Сообщений: 54
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: ADC ATMega8
Вот первая часть когда все значения 2^8 перебираются заработала. Теперь захотел сделать чтоб последовательно 4 светодиода вкл, написал такую штуку, но не работает, не могу понять почему.
Опорное 5В, входное до 5В.
Код:
|
;===== Последовательное включение ======
svd1:
ldi R20,0b00000001
out PORTB,R20
rjmp func
svd2:
ldi R20,0b00000011
out PORTB,R20
rjmp func
svd3:
ldi R20,0b00000111
out PORTB,R20
rjmp func
func:
rcall delay
in R19, ADCH
cpi R19, 0b00111111 ;1.25В
brlo svd1
cpi R19, 0b01111111 ;2.5B
brlo svd2
cpi R19, 0b10111110 ;3.75B
brlo svd3
ldi R19,0b00001111
out PORTB,R19
rjmp func |
Последний раз редактировалось lolodin; 16.02.2012 в 06:46.
|
|
|
|
16.02.2012, 10:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: ADC ATMega8
А как программа попадает на настройку портов? Уже был этот вопрос, но, по-моему, ничего не поменялось. По умолчанию порты настроены на вход.
Последний раз редактировалось alvadep; 16.02.2012 в 10:19.
|
|
|
|
16.02.2012, 10:50
|
|
Временная регистрация
Регистрация: 06.04.2008
Сообщений: 54
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: ADC ATMega8
Я давно настройку портов поднял выше безусловного перехода на главную функцию. Вот весь код .asm
|
|
|
|
16.02.2012, 10:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: ADC ATMega8
Это другое дело, но порты Вы настраеваете на вход, а не на выход.
Код:
|
;===== Настройка портов =====\
ldi R17,0 // настраиваю порт В на выход
out DDRB,R17
ldi R17,0
out PORTB,R17
out DDRC, R17 |
Нужно записывать 1-ы (255) в DDRB.
Последний раз редактировалось alvadep; 16.02.2012 в 11:09.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
STM8S207 ADC?
|
Keldish |
Микроконтроллеры, АЦП, память и т.д |
10 |
09.08.2011 10:08 |
STM8S20x ADC?
|
Keldish |
Микроконтроллеры, АЦП, память и т.д |
3 |
10.03.2011 18:06 |
adc avr
|
operator |
Proteus, KiCAD и другие ECAD |
9 |
27.11.2009 09:21 |
С микрофона в ADC
|
Vas2 |
Микроконтроллеры, АЦП, память и т.д |
3 |
15.03.2008 11:05 |
ADC преобразования.
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
18 |
14.03.2008 20:59 |
Часовой пояс GMT +4, время: 04:49.
|
|