Daniel Peter
/
RtosTest
Diff: main.cpp
- Revision:
- 0:331db0b44b67
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Sep 21 19:48:05 2010 +0000 @@ -0,0 +1,50 @@ +#include <mbed.h> +#include <scmRTOS.h> + +Serial pc(USBTX, USBRX); + +// process types +typedef OS::process<OS::pr0, 1000> TProc1; +typedef OS::process<OS::pr1, 1000> TProc2; + +// process objects +TProc1 Proc1; +TProc2 Proc2; + +//--------------------------------------------------------------------------- +long long count = 0; + +int main() { + pc.baud(115200); + printf("\nInitialising ...\n"); + OS::Run(); +} + +//--------------------------------------------------------------------------- +template<> OS_PROCESS void TProc1::Exec() { + for (;;) { + Sleep(2000); + printf("[1] %lld\n", count); + } +} + +//--------------------------------------------------------------------------- +template<> OS_PROCESS void TProc2::Exec() { + for (;;) { + Sleep(2000); + printf("[2] %lld\n", count); + } +} + +//--------------------------------------------------------------------------- +void OS::SystemTimerUserHook() { + ++count; + if (count % 2000 == 0) { + printf("\n%lld\n", count); + } +} + +//--------------------------------------------------------------------------- +void OS::IdleProcessUserHook() { + __WFI(); +} \ No newline at end of file