
main.cpp@0:331db0b44b67, 2010-09-21 (annotated)
- Committer:
- mbed714
- Date:
- Tue Sep 21 19:48:05 2010 +0000
- Revision:
- 0:331db0b44b67
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed714 | 0:331db0b44b67 | 1 | #include <mbed.h> |
mbed714 | 0:331db0b44b67 | 2 | #include <scmRTOS.h> |
mbed714 | 0:331db0b44b67 | 3 | |
mbed714 | 0:331db0b44b67 | 4 | Serial pc(USBTX, USBRX); |
mbed714 | 0:331db0b44b67 | 5 | |
mbed714 | 0:331db0b44b67 | 6 | // process types |
mbed714 | 0:331db0b44b67 | 7 | typedef OS::process<OS::pr0, 1000> TProc1; |
mbed714 | 0:331db0b44b67 | 8 | typedef OS::process<OS::pr1, 1000> TProc2; |
mbed714 | 0:331db0b44b67 | 9 | |
mbed714 | 0:331db0b44b67 | 10 | // process objects |
mbed714 | 0:331db0b44b67 | 11 | TProc1 Proc1; |
mbed714 | 0:331db0b44b67 | 12 | TProc2 Proc2; |
mbed714 | 0:331db0b44b67 | 13 | |
mbed714 | 0:331db0b44b67 | 14 | //--------------------------------------------------------------------------- |
mbed714 | 0:331db0b44b67 | 15 | long long count = 0; |
mbed714 | 0:331db0b44b67 | 16 | |
mbed714 | 0:331db0b44b67 | 17 | int main() { |
mbed714 | 0:331db0b44b67 | 18 | pc.baud(115200); |
mbed714 | 0:331db0b44b67 | 19 | printf("\nInitialising ...\n"); |
mbed714 | 0:331db0b44b67 | 20 | OS::Run(); |
mbed714 | 0:331db0b44b67 | 21 | } |
mbed714 | 0:331db0b44b67 | 22 | |
mbed714 | 0:331db0b44b67 | 23 | //--------------------------------------------------------------------------- |
mbed714 | 0:331db0b44b67 | 24 | template<> OS_PROCESS void TProc1::Exec() { |
mbed714 | 0:331db0b44b67 | 25 | for (;;) { |
mbed714 | 0:331db0b44b67 | 26 | Sleep(2000); |
mbed714 | 0:331db0b44b67 | 27 | printf("[1] %lld\n", count); |
mbed714 | 0:331db0b44b67 | 28 | } |
mbed714 | 0:331db0b44b67 | 29 | } |
mbed714 | 0:331db0b44b67 | 30 | |
mbed714 | 0:331db0b44b67 | 31 | //--------------------------------------------------------------------------- |
mbed714 | 0:331db0b44b67 | 32 | template<> OS_PROCESS void TProc2::Exec() { |
mbed714 | 0:331db0b44b67 | 33 | for (;;) { |
mbed714 | 0:331db0b44b67 | 34 | Sleep(2000); |
mbed714 | 0:331db0b44b67 | 35 | printf("[2] %lld\n", count); |
mbed714 | 0:331db0b44b67 | 36 | } |
mbed714 | 0:331db0b44b67 | 37 | } |
mbed714 | 0:331db0b44b67 | 38 | |
mbed714 | 0:331db0b44b67 | 39 | //--------------------------------------------------------------------------- |
mbed714 | 0:331db0b44b67 | 40 | void OS::SystemTimerUserHook() { |
mbed714 | 0:331db0b44b67 | 41 | ++count; |
mbed714 | 0:331db0b44b67 | 42 | if (count % 2000 == 0) { |
mbed714 | 0:331db0b44b67 | 43 | printf("\n%lld\n", count); |
mbed714 | 0:331db0b44b67 | 44 | } |
mbed714 | 0:331db0b44b67 | 45 | } |
mbed714 | 0:331db0b44b67 | 46 | |
mbed714 | 0:331db0b44b67 | 47 | //--------------------------------------------------------------------------- |
mbed714 | 0:331db0b44b67 | 48 | void OS::IdleProcessUserHook() { |
mbed714 | 0:331db0b44b67 | 49 | __WFI(); |
mbed714 | 0:331db0b44b67 | 50 | } |