HoStAn
10.10.2006, 19:21
ich möchte an RA0 und RA1 jeweils einen analogen Wert einlesen. Wenn ich die einzelnene AD-Werte in 2 verschiedenen Programme einlese, funktioniert es.
Wenn ich die 2 einzelnen Programme zusammen schreibe, dann habe ich Probleme mit dem einlesen, da RA0 und RA1 sich
beeinflussen. Der Fehler liegt auf jeden Fall in der Auswahl, welcher PIN als Eingang für den AD-Wandler gewählt wird.
Nachdem ich die 2 einzelnen Programme zusammen geschrieben habe, habe ich den kompletten Teil für die zweite Anzeige
ausgeklammert, und nacheinander wieder ins Programm gestellt. Als ich dann die Auswahl des PIN RA1 "freigeschaltet" habe, trat
der Fehler wieder auf.
Habt Ihr eine Idee woran das liegt?
Die Konfiguration des Programms ist in Ordnung.
;****Eingang (RA0) des AD-Wandler auswählen****
bcf ADCON0,5
bcf ADCON0,4
bcf ADCON0,3
;****Auswahl Ende****
bsf ADCON0,2 ;AD-Wandler starten
loopad1: btfsc ADCON0,2 ;AD-Wandler fertig?
goto loopad1 ;noch nicht fertig, warten
adhol1: movfw ADRESH
movwf adneu_1
movlw 0x01 ;wartezeit von 1mS
movwf loops
call wait_ms
;****Eingang (RA1) des AD-Wandler auswählen****
bcf ADCON0,5
bcf ADCON0,4
bsf ADCON0,3
;****Auswahl Ende****
bsf ADCON0,2 ;AD-Wandler starten
loopad2: btfsc ADCON0,2 ;AD-Wandler fertig?
goto loopad2 ;noch nicht fertig, warten
adhol2: movfw ADRESH
movwf adneu_2
Wenn ich die 2 einzelnen Programme zusammen schreibe, dann habe ich Probleme mit dem einlesen, da RA0 und RA1 sich
beeinflussen. Der Fehler liegt auf jeden Fall in der Auswahl, welcher PIN als Eingang für den AD-Wandler gewählt wird.
Nachdem ich die 2 einzelnen Programme zusammen geschrieben habe, habe ich den kompletten Teil für die zweite Anzeige
ausgeklammert, und nacheinander wieder ins Programm gestellt. Als ich dann die Auswahl des PIN RA1 "freigeschaltet" habe, trat
der Fehler wieder auf.
Habt Ihr eine Idee woran das liegt?
Die Konfiguration des Programms ist in Ordnung.
;****Eingang (RA0) des AD-Wandler auswählen****
bcf ADCON0,5
bcf ADCON0,4
bcf ADCON0,3
;****Auswahl Ende****
bsf ADCON0,2 ;AD-Wandler starten
loopad1: btfsc ADCON0,2 ;AD-Wandler fertig?
goto loopad1 ;noch nicht fertig, warten
adhol1: movfw ADRESH
movwf adneu_1
movlw 0x01 ;wartezeit von 1mS
movwf loops
call wait_ms
;****Eingang (RA1) des AD-Wandler auswählen****
bcf ADCON0,5
bcf ADCON0,4
bsf ADCON0,3
;****Auswahl Ende****
bsf ADCON0,2 ;AD-Wandler starten
loopad2: btfsc ADCON0,2 ;AD-Wandler fertig?
goto loopad2 ;noch nicht fertig, warten
adhol2: movfw ADRESH
movwf adneu_2