Tast Sensor Test C
Asuro Tastsensor Testprogramm.
Beschreibung
Die Tastsensoren des Asuro werden alle 1/2 Sekunde überprüft und das Ergebnis über die IR Schnittstelle zum PC gesendet. Dort kann das Ergebnis mithilfe eines Terminalprogramm überprüft werden.
Programmcode
Der Programmcode aller Beispiel- und Testprogramme kann im Download Bereich heruntergeladen werden, bzw. befinden sich im Examples Ordner der Asuro Lib unter TasterTest.
/***********************************************************************
*
* File Name: tastsensor.c
* Project : ASURO
*
* Description: Test der Tastensensoren
*
* Ver. Date Author Comments
* ------- ---------- -------------- ------------------------------
* 1.0 10.09.2005 Peter initial build
* 1.1 08.01.2006 Peter 2x PollSwitch + Vergleich, anstelle 8x PollSwitch
*
* benoetigt die modifizierte Asuro Bibliothek 'asuro.c'
* von waste, stochri und andun. Zu finden bei www.roboternetz.de
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* any later version. *
***************************************************************************/
#include "asuro.h"
int main(void)
{
unsigned char t1, t2;
Init();
SerWrite("\r\nTastsensor Test\r\n",19);
while(1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if(t1 && t2 && t1 == t2) /* irgendeine Taste gedrueckt */
{
PrintInt(t1); /* Tastenwert senden */
SerWrite("\r\n", 2); /* Zeilenvorschub */
Msleep(500); /* halbe Sekunde warten */
}
}
}
Ausgabe
Funktionieren alle Tastsensoren korrekt, so sollte im Terminalprogramm folgende Ausgabe erscheinen, wenn nacheinander die Taster K1..K6 gedrückt werden.
Tastsensor Test 32 16 8 4 2 1
Falls die Werte K1, K2 o. K3 etwas abweichen, z.B. 33 statt 32 liefern hilft eine Modifikation der Bibliotheksfunktion PollSwitch(). Näheres siehe im FAQ unter Taster Probleme.
Werden mehrere Tasten gleichzeitig gedrückt entspricht der ausgegebene Wert der Summe der gedrückten Tasten.
Die Werte für die einzelnen Tasten sind nicht zufällig gewählt sondern entsprechen den 2er Potenzen 21, 22, 23, 24, 25, 26. Dadurch kann man in eigenen Programmen die gedrückte Tasten mit den gesetzten Bits (in Hexadezimal Schreibweise) abtesten.
t1 = PollSwitch(); t2 = PollSwitch(); if (t1 && t2 && t1 == t2) { if (t1 & 0x01) // Taste K6 gedrückt do_K6(); if (t1 & 0x02) // Taste K5 gedrückt do_K5(); if (t1 & 0x04) // Taste K4 gedrückt do_K4(); if (t1 & 0x08) // Taste K3 gedrückt do_K3(); if (t1 & 0x10) // Taste K2 gedrückt do_K2(); if (t1 & 0x20) // Taste K1 gedrückt do_K1(); if (t1 & 0x07) // Taste K6, K5 und K4 gedrückt do_K6_K5_K4();