...
Code Block |
---|
#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 stattisenastaattisena, 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 } |