Wenn ich nun doof fragen darf, und wo ? hab mit der suche bisher noch nichts gefunden :(
Druckbare Version
Wenn ich nun doof fragen darf, und wo ? hab mit der suche bisher noch nichts gefunden :(
Nochmal das Thema aufrufen, entschuldigung.
Aber Wo finde ich solch ein Anschlussplan für solch ein Touchscreen?
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
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);
}
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?
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