EDIT: Der dep sitzt wie immer vorm Monitor man sollte auch den Y Wert zum Display Senden und nicht 2x den X wert ;PHi ich hab mich hier irgendwie so was von festgefahren, jedenfalls finde ich den Fehler nicht und auch nicht nach drei tagen und 5x neu schreiben.
Das Problem ist das zwar die Messung Funktioniert aber ich bei AN0 und AN1 das gleiche Ergebnis bekomme was aber nicht sein kann.
Hab leider auch einige Code-Schnippel für euch das ganze Projekt zu Posten wehre etwas viel sind um die 3k Zeilen.
Defines:
#define YM PORTA, 0 ; Touch y- ADC
#define YP PORTA, 2 ; Touch y+ PWR
#define XP PORTA, 4 ; Touch x+ PWR
#define XM PORTA, 1 ; Touch x- ADC
Config:
banksel TRISA ; Zu Bank von TRISA umschalten
movlw B'00000011' ; PortA I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...)
movwf TRISA ; PortA I/O setzen
banksel ADCON1 ; Zur Bank von ADCON1 umschalten
movlw B'10010100' ; AN0,AN1,AN3 Analog,VDD=VREF, Right jutyfy, fosc/16, AN0,1,3=AN, AN2,4-7=Dig.
movwf ADCON1 ; Move w to ADCON1
banksel ADCON0 ; zu Bank von TRISA umschalten
movlw B'01000001' ; Enable ADC
movwf ADCON0 ; Move w to ADCON0
ADC-Rotine:
adc_read
movlw D'30' ; Wait Acquisition Time
movwf count
adc_read_loop
decfsz count,F
goto adc_read_loop
bsf ADCON0,GO ; Setze ADCON0,GO, Int A/D Conversation
adc_read_loop_1 ; Wen ADC bereit
btfsc ADCON0,GO ; Ist ADCON0,GO = 0 dann ubergehe den nesten Befehl
goto adc_read_loop_1 ; Warte bis ADC fertig
return
Und die Rotine in der die ADCs benutzt werden:
touch_read
; Y
bsf YP
bcf XP
;movlw B'01000001' ; ADC AN0 auswehlen
;movwf ADCON0
bcf ADCON0,5 ; ADC Auswehlen
bcf ADCON0,4
bcf ADCON0,3
call adc_read ; Read ADC AD0 Daten
banksel ADRESL
movf ADRESL,w
movwf ylow
banksel ADRESH
movf ADRESH,w
movwf yhigh ; Read ADC AD0 Daten
bcf XP
bcf YP
; X
bsf XP
bcf YP
;movlw B'01001001' ; ADC AN1 auswehlen
;movwf ADCON0
bcf ADCON0,5 ; ADC Auswehlen
bcf ADCON0,4
bsf ADCON0,3
call adc_read
banksel ADRESL
movf ADRESL,w
movwf xlow ; Read ADC AD0 Daten
banksel ADRESH
movf ADRESH,w
movwf xhigh ; Read ADC AD0 Daten
bcf XP
bcf YP
return
Danke schon mal wenn was fehlen sollte sacht Bescheid.