Marco Zecchini
/
Example_RTOS
Rtos API example
Diff: main.cpp
- Revision:
- 0:9fca2b23d0ba
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Feb 23 12:13:36 2019 +0000 @@ -0,0 +1,38 @@ +#include "mbed.h" +#define BUF_SIZE 10 + +Thread thread; +CircularBuffer<char, BUF_SIZE> buf; +int bytes = 0; + +void print_string(char data_stream[] = "Thread") +{ + while (!buf.full()) { + buf.push(data_stream[bytes++ % 6]); + } +} + +void print_thread() +{ + while (true) { + wait(1); + print_string(); + } +} + +int main() +{ + printf("\n\n*** RTOS - CircularBuffer basic example ***\n"); + + thread.start(print_thread); + char data; + while (true) { + printf ("\n\rBuffer contents: "); + while (!buf.empty()) { + buf.pop(data); + printf("%c", data); + } + printf("\n"); + wait(1); + } +}