AD-Wandler / AN0, AN1 haben das gleiche Ergebniss
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Programmiersprache Assembler  |  AD-Wandler (Assembler)  |  AD-Wandler / AN0, AN1 haben das gleiche Ergebniss « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: AD-Wandler / AN0, AN1 haben das gleiche Ergebniss  (Gelesen 2894 mal)
 
theborg
Full Member
***
Offline Offline

Beiträge: 216



Profil anzeigen WWW
« am: Januar 22, 2010, 20:34:40 »

EDIT: Der dep sitzt wie immer vorm Monitor man sollte auch den Y Wert zum Display Senden und nicht 2x den X wert ;P

Hi 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:
Code:
#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:
Code:
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:
Code:
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:
Code:
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.
« Letzte Änderung: Januar 22, 2010, 21:55:34 von theborg » Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #1 am: Januar 26, 2010, 21:29:53 »

Hallo,
hast du eine Pinnbelegung für X und Y auf dem Folienleiter:)
Gespeichert
theborg
Full Member
***
Offline Offline

Beiträge: 216



Profil anzeigen WWW
« Antworten #2 am: Januar 27, 2010, 14:46:03 »

ja wen er zu dir zeigt von links nach rechts:

y-,y+,x+,x-
Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #3 am: Januar 27, 2010, 18:27:12 »

Okay vielen dank.
Noch eine kurze Frage auf etlichen Foren wurde ein 100Ohm Widerstand davorgeschalten, ist das dringend notwendig?
Oder geht es auch ohne?
Gespeichert
theborg
Full Member
***
Offline Offline

Beiträge: 216



Profil anzeigen WWW
« Antworten #4 am: Januar 27, 2010, 18:57:57 »

OHM ja ich hab keine Ahnung im µC.net steht ohne bei MCS.de ist es mit, hab das aber nicht mit den Widerständen getestet, das Touch hat werte zwischen 800Ohm und 1,8K also sollte das ohne kein Problem darstellen.
Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #5 am: Januar 27, 2010, 19:18:51 »

Danke für die rasche Antwort.
Ich werde es mal ohne versuchen.
Gespeichert
theborg
Full Member
***
Offline Offline

Beiträge: 216



Profil anzeigen WWW
« Antworten #6 am: Januar 27, 2010, 21:08:35 »

Hi, es gibt auch noch einen schaltung wie sie z.b. aufm BIGPIC5 verbaut ist http://www.stefan-buchgeher.info/elektronik/touchpanel/touchpanel_kap3.html#Kap3 nur brauch man die scheinbar nicht das Ergebnis ist das gleiche und die Ansteuerung auch.

Erweiter Grade die Testdateien wie sie im anderen terat stehen des dauert aber noch etwas hab momentan nicht die zeit dafür, was mir auch noch etwas Kopfschmerzen macht ist den 10bit vert vom ADC in ein sinnvolles Raster um zurechnen für die Auswertung.
Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #7 am: Januar 27, 2010, 21:20:16 »

Ich bekomme nun für X und Y Werte rein, leider kann ich auf beiden Achsen keine lineare zu/abnahme des Wertes erkennen.
Muss man die Werte erst umrechnen oder habe ich einen Fehler?
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #8 am: Januar 27, 2010, 21:35:41 »

Hallo Max,

dir ist klar wie man so ein resistives Touchpad ausliest?

Tip für die Hardware: Sieh auf jeden Fall Kondensatoren von den Leitern nach Masse vor, die Widerstände würde ich sicherheitshalber vorsehen, können aber im Fall ja gebrückt werden.

Gruß
Stefan
Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #9 am: Januar 27, 2010, 21:37:32 »

Ehrlich gesagt nein;) Bin noch neu in diesem Gebiet.
Gespeichert
theborg
Full Member
***
Offline Offline

Beiträge: 216



Profil anzeigen WWW
« Antworten #10 am: Januar 27, 2010, 21:45:02 »

So habs doch schnell mal fertig gemacht hab aber die Belegung verändert da an meinen DEV-Bord einige IOs nicht richtig wollen.

Ist komplett Displayansteuerung und der touch und eine debug anzeige aufm Display.

http://www.grautier.com/temp/dg-16080.tar.gz

kannst ja mal schauen ob es so will.

ansonsten mal den link von oben lesen der ist sehr informativ.
Gespeichert

Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #11 am: Januar 27, 2010, 22:07:31 »

Dann schau dir mal die Dateien im Anhang an, ist zwar für die PIC32 und in C, macht aber das Prinzip klar.
Sonst hat TI auch scöne Controller für sowas. Bedarf einfach fragen.
Sonst noch: http://de.wikipedia.org/wiki/Touchscreen#Resistive_Touchscreens

Gruß
Stefan

* TouchScreen.c (25.95 KB - runtergeladen 356 Mal.)
* TouchScreen.h (8.3 KB - runtergeladen 218 Mal.)
Gespeichert

Max Pohl
Jr. Member
**
Offline Offline

Beiträge: 65



Profil anzeigen
« Antworten #12 am: Januar 27, 2010, 22:11:04 »

Vielen Dank ich werde mich da mal durcharbeiten.
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.037 Sekunden mit 18 Zugriffen.
 
Top! Top!