Hallo,
habe gerade versucht den Code zu kopieren, leider ist er dann nicht
formatiert und da ich lange Texte habe sieht das fürchterlich aus.
Vielleich kannst du mir auch so helfen.
Was für Bits müssen nach einer Wandlung im ADCSRA rückgesetzt werden
damit das Ganze wieder von neuem startet? Oder warum funktioniert der
Interrupt beim zweiten Mal nicht mehr? Wenn ich das "Start Conversion"
Bit wieder setzte sollte doch auch der Interrupt wieder funktionieren?
Gruß
Norbert
Auszug aus meinem Programm
org 0x00E
RJMP ADC_Interrupt ; Anlaog Handler
SEI ; Interrupt freigeben
;***********************************************************************
***
Diese Programmteil wird nur ein Mal durchlaufen
Analogeingang ADC0 initialisieren
ADC0: LDI R16, 0b00100000 ; ADC0 freischalten/ 8Bit
OUT ADMUX, R16 ; Kanal an Wandler übergeben
LDI R25, 0b11001101 ; Enable, Interrupt, Vorteiler
OUT ADCSRA, R25 ; Start Conversion
RJMP mainloop
:***********************************************************************
***
ADC_Interrupt:
IN R26, ADCL ; Wandler Low Teil auslesen
IN R27, ADCH ; Wandler High Teil auslesen
MOVE ..., R27 ; Ergebnis
RET