raist
03.09.2012, 15:33
Hi,
ich möchte grade mit meinem Atmega2560 zwei ADC Eingänge hintereinander abfragen. Also zuerst Eingang a und direkt danach Eingang b. Das Problem ist, dass ich an beiden Eingängen die gleichen Werte erhalte. Frag ich sie einzeln ab, erhalte ich unterschiedliche (so wie es sein soll). Achso, ich mache die Sache im Inline Assembler von Bascom, falls das von Bedeutung sein sollte.
ADCSRA = &b10000111
...
$asm
'Sensor links lesen
LDI r16, &b01000011
OUT ADMUX, r16
LDI r16, &b00001000
OUT ADCSRB, r16
SBI ADCSRA, ADSC
IN r18, ADCL
IN r19, ADCH
'Sensor rechts lesen
LDI r16, &b01000010
OUT ADMUX, r16
LDI r16, &b00001000
OUT ADCSRB, r16
SBI ADCSRA, ADSC
IN r20, ADCL
IN r21, ADCH
...
$end asm
Wäre dankbar um einige Tipps, ich habe nämlich erst vor zwei Wochen damit angefangen ;)
ich möchte grade mit meinem Atmega2560 zwei ADC Eingänge hintereinander abfragen. Also zuerst Eingang a und direkt danach Eingang b. Das Problem ist, dass ich an beiden Eingängen die gleichen Werte erhalte. Frag ich sie einzeln ab, erhalte ich unterschiedliche (so wie es sein soll). Achso, ich mache die Sache im Inline Assembler von Bascom, falls das von Bedeutung sein sollte.
ADCSRA = &b10000111
...
$asm
'Sensor links lesen
LDI r16, &b01000011
OUT ADMUX, r16
LDI r16, &b00001000
OUT ADCSRB, r16
SBI ADCSRA, ADSC
IN r18, ADCL
IN r19, ADCH
'Sensor rechts lesen
LDI r16, &b01000010
OUT ADMUX, r16
LDI r16, &b00001000
OUT ADCSRB, r16
SBI ADCSRA, ADSC
IN r20, ADCL
IN r21, ADCH
...
$end asm
Wäre dankbar um einige Tipps, ich habe nämlich erst vor zwei Wochen damit angefangen ;)