Several examples run on only mbed-os5.13.0 (not 5.14.0)
Dependencies: BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI
z_example/0_led_blinky.cpp@4:0f4affc00183, 2019-10-14 (annotated)
- Committer:
- kenjiArai
- Date:
- Mon Oct 14 08:55:15 2019 +0000
- Revision:
- 4:0f4affc00183
- Parent:
- 3:35ac9ee7d2d6
Several Examples
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kenjiArai | 3:35ac9ee7d2d6 | 1 | /* |
kenjiArai | 3:35ac9ee7d2d6 | 2 | * Mbed Application program / Blinky |
kenjiArai | 3:35ac9ee7d2d6 | 3 | * |
kenjiArai | 3:35ac9ee7d2d6 | 4 | * Copyright (c) 2018,'19 Kenji Arai / JH1PJL |
kenjiArai | 3:35ac9ee7d2d6 | 5 | * http://www.page.sannet.ne.jp/kenjia/index.html |
kenjiArai | 3:35ac9ee7d2d6 | 6 | * https://os.mbed.com/users/kenjiArai/ |
kenjiArai | 3:35ac9ee7d2d6 | 7 | * Created: April 10th, 2018 |
kenjiArai | 4:0f4affc00183 | 8 | * Revised: October 14th, 2019 |
kenjiArai | 3:35ac9ee7d2d6 | 9 | */ |
kenjiArai | 3:35ac9ee7d2d6 | 10 | |
kenjiArai | 3:35ac9ee7d2d6 | 11 | #include "select_program.h" |
kenjiArai | 3:35ac9ee7d2d6 | 12 | //#define EXAMPLE_0_BLINKY_LED |
kenjiArai | 3:35ac9ee7d2d6 | 13 | #ifdef EXAMPLE_0_BLINKY_LED |
kenjiArai | 3:35ac9ee7d2d6 | 14 | |
kenjiArai | 3:35ac9ee7d2d6 | 15 | // Include -------------------------------------------------------------------- |
kenjiArai | 3:35ac9ee7d2d6 | 16 | #include "mbed.h" |
kenjiArai | 3:35ac9ee7d2d6 | 17 | |
kenjiArai | 3:35ac9ee7d2d6 | 18 | // Definition ----------------------------------------------------------------- |
kenjiArai | 3:35ac9ee7d2d6 | 19 | #define LEDON 1 |
kenjiArai | 3:35ac9ee7d2d6 | 20 | #define LEDOFF 0 |
kenjiArai | 3:35ac9ee7d2d6 | 21 | |
kenjiArai | 3:35ac9ee7d2d6 | 22 | #define FOREVER 0x7fffffff |
kenjiArai | 3:35ac9ee7d2d6 | 23 | |
kenjiArai | 3:35ac9ee7d2d6 | 24 | // Constructor ---------------------------------------------------------------- |
kenjiArai | 3:35ac9ee7d2d6 | 25 | DigitalOut my_led1(LED1); |
kenjiArai | 3:35ac9ee7d2d6 | 26 | DigitalOut my_led2(LED2); |
kenjiArai | 3:35ac9ee7d2d6 | 27 | DigitalOut my_led3(LED3); |
kenjiArai | 3:35ac9ee7d2d6 | 28 | Serial pc(USBTX, USBRX, 115200); |
kenjiArai | 3:35ac9ee7d2d6 | 29 | |
kenjiArai | 3:35ac9ee7d2d6 | 30 | // RAM ------------------------------------------------------------------------ |
kenjiArai | 3:35ac9ee7d2d6 | 31 | |
kenjiArai | 3:35ac9ee7d2d6 | 32 | // ROM / Constant data -------------------------------------------------------- |
kenjiArai | 3:35ac9ee7d2d6 | 33 | |
kenjiArai | 3:35ac9ee7d2d6 | 34 | // Function prototypes -------------------------------------------------------- |
kenjiArai | 3:35ac9ee7d2d6 | 35 | static void tsk_0(void const *args); |
kenjiArai | 3:35ac9ee7d2d6 | 36 | static void tsk_1(void const *args); |
kenjiArai | 3:35ac9ee7d2d6 | 37 | static void tsk_2(void const *args); |
kenjiArai | 3:35ac9ee7d2d6 | 38 | static void tsk_3(void const *args); |
kenjiArai | 3:35ac9ee7d2d6 | 39 | |
kenjiArai | 3:35ac9ee7d2d6 | 40 | //------------------------------------------------------------------------------ |
kenjiArai | 3:35ac9ee7d2d6 | 41 | // Control Program |
kenjiArai | 3:35ac9ee7d2d6 | 42 | //------------------------------------------------------------------------------ |
kenjiArai | 4:0f4affc00183 | 43 | osThreadDef(tsk_0, osPriorityNormal,1024); |
kenjiArai | 4:0f4affc00183 | 44 | osThreadDef(tsk_1, osPriorityNormal,1024); |
kenjiArai | 4:0f4affc00183 | 45 | osThreadDef(tsk_2, osPriorityNormal,1024); |
kenjiArai | 4:0f4affc00183 | 46 | osThreadDef(tsk_3, osPriorityNormal,1024); |
kenjiArai | 3:35ac9ee7d2d6 | 47 | |
kenjiArai | 3:35ac9ee7d2d6 | 48 | int main() |
kenjiArai | 3:35ac9ee7d2d6 | 49 | { |
kenjiArai | 3:35ac9ee7d2d6 | 50 | pc.printf("\x1b[2J\x1b[H %s\r\n %s %s (UTC)\r\n", |
kenjiArai | 3:35ac9ee7d2d6 | 51 | __FILE__, __DATE__, __TIME__); |
kenjiArai | 4:0f4affc00183 | 52 | printf(" LED BLINKY EXAMPLE FOR DISCO-F769NI:\r\n"); |
kenjiArai | 3:35ac9ee7d2d6 | 53 | osThreadId id0, id1, id2, id3; |
kenjiArai | 3:35ac9ee7d2d6 | 54 | id0 = osThreadCreate(osThread(tsk_0), NULL); |
kenjiArai | 3:35ac9ee7d2d6 | 55 | id1 = osThreadCreate(osThread(tsk_1), NULL); |
kenjiArai | 3:35ac9ee7d2d6 | 56 | id2 = osThreadCreate(osThread(tsk_2), NULL); |
kenjiArai | 3:35ac9ee7d2d6 | 57 | id3 = osThreadCreate(osThread(tsk_3), NULL); |
kenjiArai | 3:35ac9ee7d2d6 | 58 | pc.printf("id0=0x%x, id1=0x%x, id2=0x%x, id3=0x%x\r\n", |
kenjiArai | 3:35ac9ee7d2d6 | 59 | (uint32_t)id0, (uint32_t)id1, (uint32_t)id2, (uint32_t)id3); |
kenjiArai | 3:35ac9ee7d2d6 | 60 | while(true) { |
kenjiArai | 3:35ac9ee7d2d6 | 61 | ThisThread::sleep_for(FOREVER); |
kenjiArai | 3:35ac9ee7d2d6 | 62 | } |
kenjiArai | 3:35ac9ee7d2d6 | 63 | } |
kenjiArai | 3:35ac9ee7d2d6 | 64 | |
kenjiArai | 3:35ac9ee7d2d6 | 65 | void tsk_0(void const *args) |
kenjiArai | 3:35ac9ee7d2d6 | 66 | { |
kenjiArai | 3:35ac9ee7d2d6 | 67 | Timer t; |
kenjiArai | 3:35ac9ee7d2d6 | 68 | uint32_t count = 0; |
kenjiArai | 3:35ac9ee7d2d6 | 69 | |
kenjiArai | 3:35ac9ee7d2d6 | 70 | while(true) { |
kenjiArai | 3:35ac9ee7d2d6 | 71 | t.reset(); |
kenjiArai | 3:35ac9ee7d2d6 | 72 | t.start(); |
kenjiArai | 3:35ac9ee7d2d6 | 73 | pc.printf("%5d\r\n", count++); |
kenjiArai | 3:35ac9ee7d2d6 | 74 | uint32_t wait = 1000 - t.read_ms(); |
kenjiArai | 3:35ac9ee7d2d6 | 75 | ThisThread::sleep_for(wait); |
kenjiArai | 3:35ac9ee7d2d6 | 76 | } |
kenjiArai | 3:35ac9ee7d2d6 | 77 | } |
kenjiArai | 3:35ac9ee7d2d6 | 78 | |
kenjiArai | 3:35ac9ee7d2d6 | 79 | void tsk_1(void const *args) |
kenjiArai | 3:35ac9ee7d2d6 | 80 | { |
kenjiArai | 3:35ac9ee7d2d6 | 81 | while(true) { |
kenjiArai | 3:35ac9ee7d2d6 | 82 | my_led1 = LEDON; |
kenjiArai | 3:35ac9ee7d2d6 | 83 | ThisThread::sleep_for(5); |
kenjiArai | 3:35ac9ee7d2d6 | 84 | my_led1 = LEDOFF; |
kenjiArai | 3:35ac9ee7d2d6 | 85 | ThisThread::sleep_for(1995); |
kenjiArai | 3:35ac9ee7d2d6 | 86 | } |
kenjiArai | 3:35ac9ee7d2d6 | 87 | } |
kenjiArai | 3:35ac9ee7d2d6 | 88 | |
kenjiArai | 3:35ac9ee7d2d6 | 89 | void tsk_2(void const *args) |
kenjiArai | 3:35ac9ee7d2d6 | 90 | { |
kenjiArai | 3:35ac9ee7d2d6 | 91 | while(true) { |
kenjiArai | 3:35ac9ee7d2d6 | 92 | my_led2 = LEDON; |
kenjiArai | 3:35ac9ee7d2d6 | 93 | ThisThread::sleep_for(5); |
kenjiArai | 3:35ac9ee7d2d6 | 94 | my_led2 = LEDOFF; |
kenjiArai | 3:35ac9ee7d2d6 | 95 | ThisThread::sleep_for(2995); |
kenjiArai | 3:35ac9ee7d2d6 | 96 | } |
kenjiArai | 3:35ac9ee7d2d6 | 97 | } |
kenjiArai | 3:35ac9ee7d2d6 | 98 | |
kenjiArai | 3:35ac9ee7d2d6 | 99 | void tsk_3(void const *args) |
kenjiArai | 3:35ac9ee7d2d6 | 100 | { |
kenjiArai | 3:35ac9ee7d2d6 | 101 | while(true) { |
kenjiArai | 3:35ac9ee7d2d6 | 102 | my_led3 = LEDON; |
kenjiArai | 3:35ac9ee7d2d6 | 103 | ThisThread::sleep_for(5); |
kenjiArai | 3:35ac9ee7d2d6 | 104 | my_led3 = LEDOFF; |
kenjiArai | 3:35ac9ee7d2d6 | 105 | ThisThread::sleep_for(3995); |
kenjiArai | 3:35ac9ee7d2d6 | 106 | } |
kenjiArai | 3:35ac9ee7d2d6 | 107 | } |
kenjiArai | 3:35ac9ee7d2d6 | 108 | |
kenjiArai | 3:35ac9ee7d2d6 | 109 | #endif |