Hi,
ich bastle gerade mit der tslib herum. Dabei stosse ich auf folgendes
Problem und weiss gerade nicht weiter.
Wenn ich auf den Touchscreen tippe, werden gleich mehrere Clicks
registriert.
Meine Funktion zum abfragen sie so aus:
1 | ...
|
2 | clock_t time1;
|
3 | ...
|
4 | int getxy(int *x, int *y) {
|
5 | int ret=0;
|
6 | while( (time1 + (CLOCKS_PER_SEC)) <= clock() ) {
|
7 | printf("x");
|
8 | }
|
9 | ret = ts_read(ts, &samp, 1);
|
10 | if(ret < 0) { printf("can't read from touchscreen!\n"); return(-1); }
|
11 | if(debug) printf("ts_debug: x: %d y: %d\n", samp.x, samp.y);
|
12 | *x = samp.x;
|
13 | *y = samp.y;
|
14 | time1 = clock();
|
15 | return 0;
|
16 | }
|
clock_t ist ein unsigned int und clock() liefert die Anzahl der clocks
seit Programmstart zurück. CLOCKS_PER_SEC ist ein #define, welches die
Anzahl der Clocks pro Sekunde enthält.
time1 ist eine globale Variable (clock_t).
Normalerweise sollte er doch hier warten bis er in der Funktion
fortfährt, bis eine Sekunde seit dem letzten Click vergangen ist, nur
leider funzt das nicht, er fährt einfach so weiter fort.
Irgendwo ist ein Denkfehler drin und ich finde ihn nicht, vielleicht
könnt ihr mir ja helfen.