diff options
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/waittest/Makefile.inc | 3 | ||||
| -rw-r--r-- | src/app/waittest/main.cc | 52 | 
2 files changed, 55 insertions, 0 deletions
| diff --git a/src/app/waittest/Makefile.inc b/src/app/waittest/Makefile.inc new file mode 100644 index 0000000..9d375f1 --- /dev/null +++ b/src/app/waittest/Makefile.inc @@ -0,0 +1,3 @@ +loop ?= 1 +timer_s ?= 1 +arch_drivers += ,timer diff --git a/src/app/waittest/main.cc b/src/app/waittest/main.cc new file mode 100644 index 0000000..f6aaea8 --- /dev/null +++ b/src/app/waittest/main.cc @@ -0,0 +1,52 @@ +#include "arch.h" +#include "driver/gpio.h" +#include "driver/stdout.h" +#include "driver/timer.h" +#include "driver/uptime.h" + +#ifndef F_TIMER +#define F_TIMER 100000 +#endif + +volatile unsigned char timer_done = 0; + +inline void await_timer() +{ +	timer_done = 0; +	timer.start(1); +	while (!timer_done) { +		arch.idle(); +	} +	timer.stop(); +} + +void loop(void) +{ +	gpio.led_toggle(1); +	kout << "start waiting" << endl; +	await_timer(); +	kout << "done waiting" << endl; +} + +int main(void) +{ +	arch.setup(); +	gpio.setup(); +	kout.setup(); +#if F_TIMER > 999 +	timer.setup_khz(F_TIMER / 1000); +#else +	timer.setup_hz(F_TIMER); +#endif + +	gpio.led_on(0); +	kout << "Timer set at " << dec << F_TIMER << " Hz" << endl; + +	arch.idle_loop(); + +	return 0; +} + +ON_TIMER_INTERRUPT_head +	timer_done = 1; +ON_TIMER_INTERRUPT_tail | 
