H
Hanno Rein
Guest
Hallo!
Ich habe hier einen PIC16f870. Nun möchte ich an den Pins AN0, AN1 analoge
Spannungswerte einlesen. Bei AN0 tut das auch gut. Wenn ich aber beide
Eingänge in einem Programm abfragen will erhalte ich irgendeinen
undefinierbaren Mittelwert. Dieser hat schon noch etwas mit dem jeweiligen
Eingang zu tun, aber auch mit dem anderen. Also irgenwas mach ich falsch.
Hier ist eine Ausleseroutine:
READADC1
BCF ADCON0, 5 ; Eingang wählen
BCF ADCON0, 4
BCF ADCON0, 3
movlw D'100' ; Pause nach Portwechsel (400 uS)
movwf ow_counter1
Call OW_WAIT
BSF ADCON0, 2 ; start
ADCloop1:
BTFSS ADCON0, 2
GOTO ADCloop1
movlw 'W'
CALL RS232out
movlw 'D'
CALL RS232out
movfw ADRESH
CALL RS232decout
CALL newline
return
Die zweite ist bis auf die Zeile "BSF ADCON0,3" identisch. Ich richte den
ADC zu Beginn mit folgendem Code ein:
; ADC initialisieren
movlw B'00000100' ; RA0, RA1 = input, vref = vss, vdd
movwf ADCON1
movlw B'10000001' ; 10 MHz, anschalten
movwf ADCON0
Ich bin für jeden Tipp dankbar
Grüße
Hanno
Ich habe hier einen PIC16f870. Nun möchte ich an den Pins AN0, AN1 analoge
Spannungswerte einlesen. Bei AN0 tut das auch gut. Wenn ich aber beide
Eingänge in einem Programm abfragen will erhalte ich irgendeinen
undefinierbaren Mittelwert. Dieser hat schon noch etwas mit dem jeweiligen
Eingang zu tun, aber auch mit dem anderen. Also irgenwas mach ich falsch.
Hier ist eine Ausleseroutine:
READADC1
BCF ADCON0, 5 ; Eingang wählen
BCF ADCON0, 4
BCF ADCON0, 3
movlw D'100' ; Pause nach Portwechsel (400 uS)
movwf ow_counter1
Call OW_WAIT
BSF ADCON0, 2 ; start
ADCloop1:
BTFSS ADCON0, 2
GOTO ADCloop1
movlw 'W'
CALL RS232out
movlw 'D'
CALL RS232out
movfw ADRESH
CALL RS232decout
CALL newline
return
Die zweite ist bis auf die Zeile "BSF ADCON0,3" identisch. Ich richte den
ADC zu Beginn mit folgendem Code ein:
; ADC initialisieren
movlw B'00000100' ; RA0, RA1 = input, vref = vss, vdd
movwf ADCON1
movlw B'10000001' ; 10 MHz, anschalten
movwf ADCON0
Ich bin für jeden Tipp dankbar
Grüße
Hanno