Hello.
I'm trying to use the adc on my atmega48, but I'm having a little difficulties.
Why can't I load anything into the ADC registers like ADMUX and ADCSRA?
I've tried using LDI and MOVW and MOV, but AVRstudio tells me its an invalid register or that oprand 2 is out of range.
here is the current code:
.include "m48def.inc"
.def temp =r16 ;definer variabler
.def temp2 =r20
.def delay =r17
.def delay2 =r18
.def delay3 =r19
What am I doing wrong?
init:
bclr PRADC ;Skru på ADC
bset ADEN ;
bset REFS1 ;Referanse =AVCC
bset ADLAr ;resultatet er venstrejustert
bset ADPS2 ;
bset ADPS1 ;prescaler =1/128
bset ADPS0 ;
ser temp ;temp=0xff
out DDRB,temp ;PORTB er utganger
clr temp ;temp=0x00
out DDRC,temp ;PORTC er innganger
loop:
bset adsc
adloop:
sbrc ADCSRA,ADSC
rjmp adloop
movw temp,ADCH
out portb,temp
rjmp loop
I'm trying to use the adc on my atmega48, but I'm having a little difficulties.
Why can't I load anything into the ADC registers like ADMUX and ADCSRA?
I've tried using LDI and MOVW and MOV, but AVRstudio tells me its an invalid register or that oprand 2 is out of range.
here is the current code:
.include "m48def.inc"
.def temp =r16 ;definer variabler
.def temp2 =r20
.def delay =r17
.def delay2 =r18
.def delay3 =r19
What am I doing wrong?
init:
bclr PRADC ;Skru på ADC
bset ADEN ;
bset REFS1 ;Referanse =AVCC
bset ADLAr ;resultatet er venstrejustert
bset ADPS2 ;
bset ADPS1 ;prescaler =1/128
bset ADPS0 ;
ser temp ;temp=0xff
out DDRB,temp ;PORTB er utganger
clr temp ;temp=0x00
out DDRC,temp ;PORTC er innganger
loop:
bset adsc
adloop:
sbrc ADCSRA,ADSC
rjmp adloop
movw temp,ADCH
out portb,temp
rjmp loop