ATXMega 128A1 ADC Problem

Gast #1669845
Lesenswert?
• ▲
▼
Hallo,

ich versuche grade das resistive Touchpanel meines Displays mit einem 
xMega 128A1 auszulesen.
Das TP ist ein 4-wire TP.
Angeschlossen ist es an Port A wie folgt:
PA0 > Y-
PA1 > X+
PA2 > Y+
PA3 > X-

Mein Code sieht so aus:
1
int main(void){
2
  uint8_t xpos, ypos;
3
  int8_t buffer[10];
4

5
     //ADC Konfiguration
6
     ADCA.CTRLA = 0x01;      // ADC aktivieren
7
     ADCA.CTRLB = 0x0C;      // unsigned mode 8Bit und Freilauf Modus
8
     ADCA.REFCTRL = 0x20;    // Referenz VCC
9
   ADCA.EVCTRL = 0x80;     // sweepmode for channel 0,1 and 2
10
     ADCA.PRESCALER = 0x02;  // prescaler to 16 = 2MHz@32Mhz Systemclock
11

12

13
     //Konfiguration der einzelnen Kanäle
14
     ADCA.CH0.CTRL = 0x01;   //single-ended-positive
15
     ADCA.CH0.MUXCTRL = 0x08;// PA1 als ADCPin
16
      ADCA.CH1.CTRL = 0x01;   //single-ended-positive
17
     ADCA.CH1.MUXCTRL = 0x10;//PA2 als ADCPin
18

19
  while(1){
20
    PORTA.DIR = 0x05;
21
  PORTA.OUT |= (1<<PIN2);  //PA2 (Y+) High
22
  PORTA.OUT &= ~(1<<PIN0); //PA0 (Y-) Low
23

24
  _delay_ms(50);
25
  xpos = ADCA_CH0RES; // ADC_Wert von PA1 (X+) in xpos einlesen
26
  PORTA.DIR = 0x0A;
27
  PORTA.OUT |= (1<<PIN1); //PA1 (X+) High
28
  PORTA.OUT &= ~(1<<PIN3);//PA3 (X-) Low
29
  ypos = ADCA_CH1RES;// ADC_Wert von PA2  (Y+) in ypos einlesen
30

31
  sprintf( buffer, "X: %d", xpos );
32
  write_string(buffer, 10,10, BLACK, RED,0);
33
  sprintf( buffer, "Y: %d", ypos );
34
  write_string(buffer, 10,20, BLACK, RED,0);
35
  _delay_ms(50);
36
  }return 0;
37
}

Das Programm soll die ADC Werte erstmal auf dem Display anzeigen. Es 
zeigt lediglich einen X Wert von 255 und Y Wert von 55 an.
Wenn ich das TP ans Multimeter hänge verändert sich der Wert 
Positionsabhängig von ca 0.27-3.2V.

Hat einer von euch vielleicht eine Idee woran es liegen könnte?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.