RTOS support

Dependencies:   RingBuffer_RTOS mbed-rtos mbed

Committer:
ykuroda
Date:
Thu Sep 27 14:50:02 2012 +0000
Revision:
0:a8d5ff523eca
RTOS support

Who changed what in which revision?

UserRevisionLine numberNew 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 }