Gast
#3148806
Hallo,
ich habe versucht den ADC vom Atmega328p (auf einen Arduino Uno Board)
zu aktivieren. Leider funktioniert es nicht. Nachdem ich alles
durchsucht habe weiß ich nicht mehr weiter.
Im Simulator (Atmel Studio 6) läßt sich ADSC einfach nicht setzen (habe
verschiedenes ausprobiert) und auf dem Board funktioniert es auch nicht.
(Eigentlich soll das Programm feststellen ob eine Spannung > 4,5 V an
PC0 anliegt.)
Vielleicht kann jemand helfen.
.include "m328pdef.inc"
ldi r16, 0xFF
out DDRB, r16
ldi r16, (1<<REFS0) | (1<<ADLAR)
sts ADMUX, r16
ldi r16, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)
sts ADCSRA, r16
adc_messung:
lds r16, ADCSRA
ori r16, 0x40
sts ADCSRA, r16 ; (hier wird im Simulator ADSC nicht gesetzt
und ab hier ändert sich r16 auch nicht mehr)
adc_warten:
lds r16, ADCSRA
sbrc r16, 6
rjmp adc_warten
ldi r25, ADCH
cpi r25, 0xE6
brbs 0, adc_messung
out PORTB, r25
ende: rjmp ende