Umožňuje periodické volání funkcí s mikrosekundovou přesností.
Příklad demonstruje využití tickeru pro účely blikání LED diodou. Každé 2 sekundy je invertován stav modré LED. Tímto je dosaženo blikání z kontextu ISR.
#include"byzance.h"Serialpc(SERIAL_TX,SERIAL_RX); //USBSerial pc(0x1f00, 0x2012, 0x0001, false); //Ticker ticker;DigitalOutled(LED_BLUE);voidflip() { led =!led; //blue led is blinking}voidinit(){ Byzance::led_module(false); //disable LED module for Byzanceticker.attach(&flip,2.0); //call funciton flip every 2 seconds}voidloop(){pc.printf("im running\n"); Thread::wait(1000);}
Umožňuje zpožděné volání příslušné funkce s mikrosekundovou přesností.
Příklad demonstruje využití třídy Timeout pro zpožděné vypnutí modré LED diody. Dioda je vypnuta po 2 sekundách.
#include"byzance.h"Serialpc(SERIAL_TX,SERIAL_RX); //USBSerial pc(0x1f00, 0x2012, 0x0001, false); //Timeout timeout;DigitalOutled(LED_BLUE); //led control is invertedvoidturn_off() { led =1; //turn off blue led}voidinit(){ Byzance::led_module(false); //disable LED module for Byzance led =0; //turn on blue ledtimeout.attach(&turn_off,2.0); //call funciton turn_off after 2 seconds}voidloop(){pc.printf("im running\n"); Thread::wait(1000);}
Umožňuje měření časových úseků až s mikrosekundovou přesností.
Příklad demonstruje využití časovače - pokud měřený časový úsek přesáhne 2 sekundy, je invertována modrá LED dioda a časovač vynulován a znovu spuštěn. Tímto je dosaženo blikání z kontextu vlákna.
#include"byzance.h"Serialpc(SERIAL_TX,SERIAL_RX); //USBSerial pc(0x1f00, 0x2012, 0x0001, false); //DigitalOutled(LED_BLUE);Timer timer;voidinit(){ Byzance::led_module(false); //disable LED module for Byzancetimer.start(); //start the timer}voidloop(){if(timer.read_ms() >2000){ //if timer exceedes 2000mstimer.stop(); //stop the timertimer.reset(); //reset the timer to zero led =!led; //flip the LEDtimer.start(); //and start timer again } Thread::wait(50);}