- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Grundsatzfrage: Mit TFT-Touchscreen einen Atmel steuern?

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    23.10.2007
    Ort
    Aalen
    Alter
    40
    Beiträge
    24
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Wenn ich nun doof fragen darf, und wo ? hab mit der Suche bisher noch nichts gefunden

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    23.10.2007
    Ort
    Aalen
    Alter
    40
    Beiträge
    24
    Nochmal das Thema aufrufen, entschuldigung.

    Aber Wo finde ich solch ein Anschlussplan für solch ein Touchscreen?

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2005
    Ort
    QTH: JO43BC
    Alter
    56
    Beiträge
    112
    Hallo,

    unter:

    RoboterNetz.de Foren-Übersicht » Forum » Eigene fertige Schaltungen und Bauanleitungen

    befindet sich momentan ein Fred namens:

    240x128 T6963 LCD mit Touch an ATMega128

    Gleich im ersten Post von mir, befindet sich der Hinweis auf die Appnote #148 von www.mcselec.com.
    Und wenn man dort die besagte Appnote herausklickt dann landet man auf:
    http://www.mcselec.com/index.php?opt...=189&Itemid=57
    Hier wiederum wird gleich auf der erste Bildschirmseite ein Schaltplan gezeigt, wo man einen analog resistiven Touchscreen an einem ATMega128 angeschlossen hat.
    Und das war dann fuer mich genuegend Info um ebenfalls einen Touchscreen erfolgreich abzufragen.

    Mit freundlichen Gruessen
    Digitali

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    23.10.2007
    Ort
    Aalen
    Alter
    40
    Beiträge
    24
    Hallo,

    Habs nun endlich gefunden, hab auch das Szenario nach gestellt und den Code in GCC umgesetzt.

    Hab anstatt den 100 Ohm Widerständen, 4x 470 Ohm verwendet.

    Nur mir fehlt es gerade irgendwie an Verständnis.

    A) Dürfen sich die Werte von X und Y nicht verändern, solang das Touchpanel nicht berührt wird?

    Ich hab irgendwie die Dumpfe Vermutung das meine beschaltung nicht stimmt, weil wenn ich nun PIN1 und PIN2 mit meinem Messgerät, ändern sich die Werte.

    Messe ich nun PIN1 und 3 krieg ich nur einen festen Wert der sich trotz berühren nicht verändert.

    Ebenfalls verhält sich auch PIN 2&4 so...

    Also mein Code sieht aktuell wie folgt aus:

    Code:
    uint16_t ReadChannel(uint8_t mux)
    {
      uint8_t i;
      uint16_t result;
     
      ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);    // Frequenzvorteiler 
                                   // setzen auf 8 (1) und ADC aktivieren (1)
     
      ADMUX = mux;                      // Kanal waehlen
      ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen 
     
      /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest
         also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */
      ADCSRA |= (1<<ADSC);              // eine ADC-Wandlung 
      while ( ADCSRA & (1<<ADSC) ) {
         ;     // auf Abschluss der Konvertierung warten 
      }
      result = ADCW;  // ADCW muss einmal gelesen werden,
                      // sonst wird Ergebnis der nächsten Wandlung
                      // nicht übernommen.
     
      /* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */
      result = 0; 
      for(i=0; i<3; i++) {
    		// Eine Wandlung
    		ADCSRA |= (1<<ADSC);
    		// Auf Ergebnis warten...
    		while(ADCSRA & (1<<ADSC));
    		
    		result += ADCW;
    	}
      ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
     
      result /= 3;                     // Summe durch vier teilen = arithm. Mittelwert
     
      return result;
    }
    
    void debug(void)
    {
    	char string[100];
    	uint16_t adcval1;
    	uint16_t adcval2;
    	uint16_t adcval3;
    	uint16_t adcval4;
    
    	DDRA	|=	(1<<PA0) | (1<<PA2); // ADC0 & ADC2 = Output
    	PORTA	|=	(1<<PA0); 	//  ADC0 = High
    	PORTA	&= 	~(1<<PA2);	// ADC2 = low
    
    	DDRA	&=	~(1<< PA1) | (1<< PA3); // ADC1 & ADC3 = Input
    	_delay_ms(20);
    
    	
    	/*adcval1 = ReadChannel(0); /* MUX-Bits auf 0b0000 -> Channel 0 */
    	/*adcval2 = ReadChannel(1); /* MUX-Bits auf 0b0000 -> Channel 1 */
    	/*adcval3 = ReadChannel(2); /* MUX-Bits auf 0b0000 -> Channel 2 */
    	adcval4 = ReadChannel(3); /* MUX-Bits auf 0b0000 -> Channel 3 */
    
    	adcval4 = 1024 - adcval4;
    
    	DDRA	|=	(1<<PA1) | (1<<PA3); // ADC0 & ADC2 = Output
    	PORTA	|=	(1<<PA1); 	//  ADC0 = High
    	PORTA	&= 	~(1<<PA3);	// ADC2 = low
    
    	DDRA	&=	~(1<< PA0) | (1<< PA2); // ADC1 & ADC3 = Input
    
    	adcval3 = ReadChannel(2); /* MUX-Bits auf 0b0000 -> Channel 3 */
    	adcval3 = 1024 - adcval3;
    	lcd_ClearScreen();
    	lcd_GotoXY(1,1);
    	lcd_SelectFont(Arial, lcd_ReadFontData, BLACK);
    	
    	sprintf(string, "CA0: %i\nCA1: %i\nCA2: %i\nCA3: %i ", adcval1, adcval2, adcval3, adcval4);		
    	lcd_Puts(string);
    	_delay_ms(20);
    }

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    23.10.2007
    Ort
    Aalen
    Alter
    40
    Beiträge
    24
    Hab mir mal eben erlaubt, ein Bild von meinem Touchscreen zu machen.

    Was ich vermute, das meine PINs evtl. nicht mit dem Beispiel übereinstimmen.

    Aber wie kann ich das rausfinden?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken p1100655.jpg  

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Arbeite auch gerade an einem Projekt mit einem Tocuhdisplay von Ledsee. Hab auch ein Video online ... Die Menuesteuerung funktioniert ziemlich gut (siehe Video).

    http://www.beepworld.de/members/basc...a128_board.htm

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress