RTOS support
Dependencies: RingBuffer_RTOS mbed-rtos mbed
main.cpp@0:a8d5ff523eca, 2012-09-27 (annotated)
- Committer:
- ykuroda
- Date:
- Thu Sep 27 14:50:02 2012 +0000
- Revision:
- 0:a8d5ff523eca
RTOS support
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ykuroda | 0:a8d5ff523eca | 1 | /* |
ykuroda | 0:a8d5ff523eca | 2 | * Example Main |
ykuroda | 0:a8d5ff523eca | 3 | */ |
ykuroda | 0:a8d5ff523eca | 4 | #include "mbed.h" |
ykuroda | 0:a8d5ff523eca | 5 | #include "RingBuffer.h" |
ykuroda | 0:a8d5ff523eca | 6 | |
ykuroda | 0:a8d5ff523eca | 7 | Serial pc(USBTX, USBRX); |
ykuroda | 0:a8d5ff523eca | 8 | DigitalOut led1(LED1); |
ykuroda | 0:a8d5ff523eca | 9 | DigitalOut led2(LED2); |
ykuroda | 0:a8d5ff523eca | 10 | DigitalOut led3(LED3); |
ykuroda | 0:a8d5ff523eca | 11 | RingBuffer rb(30); |
ykuroda | 0:a8d5ff523eca | 12 | |
ykuroda | 0:a8d5ff523eca | 13 | |
ykuroda | 0:a8d5ff523eca | 14 | void |
ykuroda | 0:a8d5ff523eca | 15 | save_thread(void const *argument) |
ykuroda | 0:a8d5ff523eca | 16 | { |
ykuroda | 0:a8d5ff523eca | 17 | while (true) { |
ykuroda | 0:a8d5ff523eca | 18 | |
ykuroda | 0:a8d5ff523eca | 19 | for(int i='A'; i<='Z'; i++) { |
ykuroda | 0:a8d5ff523eca | 20 | led2 = !led2; |
ykuroda | 0:a8d5ff523eca | 21 | rb.save(i); |
ykuroda | 0:a8d5ff523eca | 22 | wait(1); |
ykuroda | 0:a8d5ff523eca | 23 | } |
ykuroda | 0:a8d5ff523eca | 24 | } |
ykuroda | 0:a8d5ff523eca | 25 | } |
ykuroda | 0:a8d5ff523eca | 26 | |
ykuroda | 0:a8d5ff523eca | 27 | |
ykuroda | 0:a8d5ff523eca | 28 | void |
ykuroda | 0:a8d5ff523eca | 29 | save_thread2(void const *argument) |
ykuroda | 0:a8d5ff523eca | 30 | { |
ykuroda | 0:a8d5ff523eca | 31 | while (true) { |
ykuroda | 0:a8d5ff523eca | 32 | |
ykuroda | 0:a8d5ff523eca | 33 | for(int i='0'; i<='9'; i++) { |
ykuroda | 0:a8d5ff523eca | 34 | led3 = !led3; |
ykuroda | 0:a8d5ff523eca | 35 | rb.save(i); |
ykuroda | 0:a8d5ff523eca | 36 | wait(1); |
ykuroda | 0:a8d5ff523eca | 37 | } |
ykuroda | 0:a8d5ff523eca | 38 | } |
ykuroda | 0:a8d5ff523eca | 39 | } |
ykuroda | 0:a8d5ff523eca | 40 | |
ykuroda | 0:a8d5ff523eca | 41 | |
ykuroda | 0:a8d5ff523eca | 42 | int |
ykuroda | 0:a8d5ff523eca | 43 | main(void) |
ykuroda | 0:a8d5ff523eca | 44 | { |
ykuroda | 0:a8d5ff523eca | 45 | Thread thread(save_thread); |
ykuroda | 0:a8d5ff523eca | 46 | Thread thread2(save_thread2); |
ykuroda | 0:a8d5ff523eca | 47 | |
ykuroda | 0:a8d5ff523eca | 48 | while(true) { |
ykuroda | 0:a8d5ff523eca | 49 | led1 = !led1; |
ykuroda | 0:a8d5ff523eca | 50 | if(rb.check()) { |
ykuroda | 0:a8d5ff523eca | 51 | int c = rb.read(); |
ykuroda | 0:a8d5ff523eca | 52 | pc.putc(c); |
ykuroda | 0:a8d5ff523eca | 53 | if(c=='Z') pc.putc('\n'); |
ykuroda | 0:a8d5ff523eca | 54 | |
ykuroda | 0:a8d5ff523eca | 55 | } else { |
ykuroda | 0:a8d5ff523eca | 56 | wait(0.1); |
ykuroda | 0:a8d5ff523eca | 57 | } |
ykuroda | 0:a8d5ff523eca | 58 | } |
ykuroda | 0:a8d5ff523eca | 59 | return 0; |
ykuroda | 0:a8d5ff523eca | 60 | } |