Marco Zecchini
/
Example_RTOS
Rtos API example
main.cpp@0:9fca2b23d0ba, 2019-02-23 (annotated)
- Committer:
- marcozecchini
- Date:
- Sat Feb 23 12:13:36 2019 +0000
- Revision:
- 0:9fca2b23d0ba
final commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcozecchini | 0:9fca2b23d0ba | 1 | #include "mbed.h" |
marcozecchini | 0:9fca2b23d0ba | 2 | #define BUF_SIZE 10 |
marcozecchini | 0:9fca2b23d0ba | 3 | |
marcozecchini | 0:9fca2b23d0ba | 4 | Thread thread; |
marcozecchini | 0:9fca2b23d0ba | 5 | CircularBuffer<char, BUF_SIZE> buf; |
marcozecchini | 0:9fca2b23d0ba | 6 | int bytes = 0; |
marcozecchini | 0:9fca2b23d0ba | 7 | |
marcozecchini | 0:9fca2b23d0ba | 8 | void print_string(char data_stream[] = "Thread") |
marcozecchini | 0:9fca2b23d0ba | 9 | { |
marcozecchini | 0:9fca2b23d0ba | 10 | while (!buf.full()) { |
marcozecchini | 0:9fca2b23d0ba | 11 | buf.push(data_stream[bytes++ % 6]); |
marcozecchini | 0:9fca2b23d0ba | 12 | } |
marcozecchini | 0:9fca2b23d0ba | 13 | } |
marcozecchini | 0:9fca2b23d0ba | 14 | |
marcozecchini | 0:9fca2b23d0ba | 15 | void print_thread() |
marcozecchini | 0:9fca2b23d0ba | 16 | { |
marcozecchini | 0:9fca2b23d0ba | 17 | while (true) { |
marcozecchini | 0:9fca2b23d0ba | 18 | wait(1); |
marcozecchini | 0:9fca2b23d0ba | 19 | print_string(); |
marcozecchini | 0:9fca2b23d0ba | 20 | } |
marcozecchini | 0:9fca2b23d0ba | 21 | } |
marcozecchini | 0:9fca2b23d0ba | 22 | |
marcozecchini | 0:9fca2b23d0ba | 23 | int main() |
marcozecchini | 0:9fca2b23d0ba | 24 | { |
marcozecchini | 0:9fca2b23d0ba | 25 | printf("\n\n*** RTOS - CircularBuffer basic example ***\n"); |
marcozecchini | 0:9fca2b23d0ba | 26 | |
marcozecchini | 0:9fca2b23d0ba | 27 | thread.start(print_thread); |
marcozecchini | 0:9fca2b23d0ba | 28 | char data; |
marcozecchini | 0:9fca2b23d0ba | 29 | while (true) { |
marcozecchini | 0:9fca2b23d0ba | 30 | printf ("\n\rBuffer contents: "); |
marcozecchini | 0:9fca2b23d0ba | 31 | while (!buf.empty()) { |
marcozecchini | 0:9fca2b23d0ba | 32 | buf.pop(data); |
marcozecchini | 0:9fca2b23d0ba | 33 | printf("%c", data); |
marcozecchini | 0:9fca2b23d0ba | 34 | } |
marcozecchini | 0:9fca2b23d0ba | 35 | printf("\n"); |
marcozecchini | 0:9fca2b23d0ba | 36 | wait(1); |
marcozecchini | 0:9fca2b23d0ba | 37 | } |
marcozecchini | 0:9fca2b23d0ba | 38 | } |