touchscreen controller ADS7843 problem

OP #1962684
Lesenswert?
• ▲
▼
Hallo

habe ein Ledsee 320x240 display mit integrierten Touch Controller.


ich habe diesen code erstellt

Mega 2561 16Mhz

typedef struct
{
  uint16_t x;
  uint16_t y;

} tvalues;

void spi_init(void)
{

ss_high();

TOUCH_cs_high();

SPCR=(1<<SPE)|(1<<MSTR);
SPSR=(1<<SPI2X);
}

void get_touch(tvalues *touchvalues)
{

  //read Y
  TOUCH_cs_low();
    spi_putc(0x9c);
  touchvalues->y = spi_putc(0x00);



  TOUCH_cs_high();

  //read x
  TOUCH_cs_low();
    spi_putc(0xdc);
    touchvalues->x = spi_putc(0x00);



  TOUCH_cs_high();
}

ich bekomme als wert x von 40 bis 60

bei y bekomme ich im ruhe modus 127. in richtung pixel x 0 ist der y 
wert 40 in richtung pixel x 320 ist es 50 dort sollte auch 40 sein.

hat jemand vileicht ein Beispiel???


Vielen Dank
Gast #1962836
Lesenswert?
• ▲
▼
naja,initialisieren ist zuviel gesagt, aber du musst vor jeder Wandlung 
erst ein  Control-Byte senden. Aber ok, machst du ja. Sorry, hatte nicht 
richtig hingeschaut.
Kann noch sein, dass der Touch verschiedene Innenwiderstände in 
x-bzw.y-Richtung hat, dann bekommst du auch unterschiedliche Werte.
OP #1962848
Lesenswert?
• ▲
▼
Hallo

geht jetzt

void get_touch(tvalues *touchvalues);


void spi_init_Touch(void)
{

ss_high();

TOUCH_cs_high();//CS auf high

SPCR=(1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
SPSR=(1<<SPI2X);
}


void get_touch(tvalues *touchvalues)
{
  spi_init_Touch();
  //read Y
  TOUCH_cs_low();
    spi_putc(0x98);
  touchvalues->y = spi_putc(0x00);



  TOUCH_cs_high();

  //read x
  TOUCH_cs_low();
    spi_putc(0xd8);
    touchvalues->x = spi_putc(0x00);



  TOUCH_cs_high();




}


muß jetzt nur noch eine Calibrierung schreiben damit ich pixelgenau 
arbeiten kann.

Ich versuche dann auch mal die 12 bit auflösung.


aber so funktioniert es ziemlich gut.

Will das Display mit den fingern bedienen.

Gruß

Andy

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.