}
#pragma config(Sensor, S3, kosketus1, sensorTouch)
int FlipFlopToiminto();
task main()
{
int toimii;
while(true)
{ toimii=FlipFlopToiminto();
if(toimii==1)
{
/*
tänne ajotoiminnot
*/
}
else
{
/*
tänne pysäytykset
*/
}
}
}
//Talla funktiolla tutkitaan kosketusanturin toimintaa, joka toisella panalluksella funktio palauttaa nollan ja robotin pitaisi pysahtya
int FlipFlopToiminto()
{
static int flipflop;//esitellaan muuttuja staattisena, jotta se muistaa edellisen kerran tilansa
static int flipAskel;//0=odotellaan napin painallusta 1=nappi painettu alas 2=nappi paastetty ylos 3=nappi toisen kerran alas
int kosketus2Value=0;
kosketus2Value = SensorValue(kosketus1);
if(kosketus2Value==1&&flipAskel==0)//eka painallus alas
{
flipflop=1;
flipAskel=1;
}
if(kosketus2Value==0&&flipflop==1)//eka paasto
{
flipAskel=2;
}
if(kosketus2Value==1&&flipAskel==2)//toka kerta alas
{
flipflop=0;
flipAskel=3;
}
if(kosketus2Value==0&&flipAskel==3)//toka kerta ylos
{
flipAskel=0;
}
return flipflop; //palautetaan funktion kutsujalle nolla tai yksi riippuen siitä kuikn mones kerta nappia painettiin
}
{code} |