Im asuro.h (lib 2.8rc1) steht:
Code:
/*
* Tastsensor Wert bei Interrupt Betrieb. 0=keine Taste, 1= Taste gedrueckt
*/
/*!
* \~english
* \brief any switch pressed?
*
* is being set to TRUE by interrupt if a switch is pressed\n
* remember to set it to false again, since it is not reset automatically
* \see StartSwitch
*/
extern volatile int switched;
Also, etwas wie:
Code:
while (1) {
if (switched=True) CheckCollision();
switched=False;
StartSwitch();
if (collision)
{
...
do_something();
...
}
}
...
NOTE: CheckCollision(), do_something() und collision ist nur pseudo-code von mir... nicht im Lib zu finden.
Und fur 2 mal taster abfragen wie im KollisionTest example program:
...
while (1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1 == 0 && t2 == 0) /* keine Taste */
{
MotorFwd(); /* vorwärts fahren */
FrontLED(ON);
BackLED(OFF,OFF);
}
else if (t1 && t2 && t1 == t2)
{
MotorStop();
if (t1 & 0x07) /* Tasten links gedrückt? */
{
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if (t1 & 0x3

/* Tasten rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
Msleep(1000); /* 1 Sekunde fahren */
}
...
Schau mal die Quell code an. Du muss nur selbst raus finden wie du die drehungen organisiert wenn ein kollision sicher erkannt ist.
Lesezeichen