RTOS support

Dependencies:   RingBuffer_RTOS mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002  *    Example Main
00003  */
00004 #include "mbed.h"
00005 #include "RingBuffer.h"
00006 
00007 Serial pc(USBTX, USBRX);
00008 DigitalOut led1(LED1);
00009 DigitalOut led2(LED2);
00010 DigitalOut led3(LED3);
00011 RingBuffer rb(30);
00012 
00013 
00014 void
00015 save_thread(void const *argument)
00016 {
00017     while (true) {
00018 
00019         for(int i='A'; i<='Z'; i++) {
00020             led2 = !led2;
00021             rb.save(i);
00022             wait(1);
00023         }
00024     }
00025 }
00026 
00027 
00028 void
00029 save_thread2(void const *argument)
00030 {
00031     while (true) {
00032 
00033         for(int i='0'; i<='9'; i++) {
00034             led3 = !led3;
00035             rb.save(i);
00036             wait(1);
00037         }
00038     }
00039 }
00040 
00041 
00042 int
00043 main(void)
00044 {
00045     Thread thread(save_thread);
00046     Thread thread2(save_thread2);
00047 
00048     while(true) {
00049         led1 = !led1;
00050         if(rb.check()) {
00051             int c = rb.read();
00052             pc.putc(c);
00053             if(c=='Z') pc.putc('\n');
00054 
00055         } else {
00056             wait(0.1);
00057         }
00058     }
00059     return 0;
00060 }