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

Committer:
kenjiArai
Date:
Wed Aug 07 05:39:01 2019 +0000
Revision:
3:35ac9ee7d2d6
1st trial revision (Not finalized yet)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 3:35ac9ee7d2d6 1 /*
kenjiArai 3:35ac9ee7d2d6 2 * Mbed Application program / Nioi Sensor
kenjiArai 3:35ac9ee7d2d6 3 *
kenjiArai 3:35ac9ee7d2d6 4 * Created: July 28th, 2019
kenjiArai 3:35ac9ee7d2d6 5 * Revised: August 1st, 2019
kenjiArai 3:35ac9ee7d2d6 6 */
kenjiArai 3:35ac9ee7d2d6 7
kenjiArai 3:35ac9ee7d2d6 8 //#include "select_program.h"
kenjiArai 3:35ac9ee7d2d6 9 #ifdef NIOI_SENSOR
kenjiArai 3:35ac9ee7d2d6 10
kenjiArai 3:35ac9ee7d2d6 11 // Include --------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 12 #include <stdlib.h>
kenjiArai 3:35ac9ee7d2d6 13 #include <stdlib.h>
kenjiArai 3:35ac9ee7d2d6 14 #include <stdio.h>
kenjiArai 3:35ac9ee7d2d6 15 #include <string>
kenjiArai 3:35ac9ee7d2d6 16 #include <errno.h>
kenjiArai 3:35ac9ee7d2d6 17 #include "mbed.h"
kenjiArai 3:35ac9ee7d2d6 18 #include "stm32f769i_discovery.h"
kenjiArai 3:35ac9ee7d2d6 19 #include "stm32f769i_discovery_audio.h"
kenjiArai 3:35ac9ee7d2d6 20 #include "EthernetInterface.h"
kenjiArai 3:35ac9ee7d2d6 21 #include "TCPServer.h"
kenjiArai 3:35ac9ee7d2d6 22 #include "TCPSocket.h"
kenjiArai 3:35ac9ee7d2d6 23 #include "TS_DISCO_F769NI.h"
kenjiArai 3:35ac9ee7d2d6 24 #include "LCD_DISCO_F769NI.h"
kenjiArai 3:35ac9ee7d2d6 25 #include "USBHostMSD.h"
kenjiArai 3:35ac9ee7d2d6 26 #include "FATFileSystem.h"
kenjiArai 3:35ac9ee7d2d6 27 #include "SDBlockDeviceDISCOF769NI.h"
kenjiArai 3:35ac9ee7d2d6 28 #include "mon.h"
kenjiArai 3:35ac9ee7d2d6 29 #include "button_group.hpp"
kenjiArai 3:35ac9ee7d2d6 30
kenjiArai 3:35ac9ee7d2d6 31 // Definition -----------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 32 using namespace Mikami;
kenjiArai 3:35ac9ee7d2d6 33
kenjiArai 3:35ac9ee7d2d6 34 #define LEDON 1
kenjiArai 3:35ac9ee7d2d6 35 #define LEDOFF 0
kenjiArai 3:35ac9ee7d2d6 36
kenjiArai 3:35ac9ee7d2d6 37 #define FOREVER 0x7fffffff
kenjiArai 3:35ac9ee7d2d6 38
kenjiArai 3:35ac9ee7d2d6 39 #define DEBUG 0
kenjiArai 3:35ac9ee7d2d6 40
kenjiArai 3:35ac9ee7d2d6 41 #if DEBUG
kenjiArai 3:35ac9ee7d2d6 42 #define DBG(...) pc.printf(__VA_ARGS__)
kenjiArai 3:35ac9ee7d2d6 43 #else
kenjiArai 3:35ac9ee7d2d6 44 #define DBG(...) {;}
kenjiArai 3:35ac9ee7d2d6 45 #endif
kenjiArai 3:35ac9ee7d2d6 46
kenjiArai 3:35ac9ee7d2d6 47 struct PointF {
kenjiArai 3:35ac9ee7d2d6 48 PointF() {}
kenjiArai 3:35ac9ee7d2d6 49 PointF(float x0, float y0) : x(x0), y(y0) {}
kenjiArai 3:35ac9ee7d2d6 50 float x, y;
kenjiArai 3:35ac9ee7d2d6 51 };
kenjiArai 3:35ac9ee7d2d6 52
kenjiArai 3:35ac9ee7d2d6 53 // Constructor ----------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 54 LCD_DISCO_F769NI lcd;
kenjiArai 3:35ac9ee7d2d6 55 TS_DISCO_F769NI ts;
kenjiArai 3:35ac9ee7d2d6 56 Serial pc(SERIAL_TX, SERIAL_RX, 115200);
kenjiArai 3:35ac9ee7d2d6 57 DigitalIn userSW(BUTTON1);
kenjiArai 3:35ac9ee7d2d6 58 DigitalOut led_red(LED1);
kenjiArai 3:35ac9ee7d2d6 59 DigitalOut led_green0(LED2);
kenjiArai 3:35ac9ee7d2d6 60 DigitalOut led_green1(LED3);
kenjiArai 3:35ac9ee7d2d6 61 SDBlockDeviceDISCOF769NI bd;
kenjiArai 3:35ac9ee7d2d6 62 FATFileSystem fs("fs");
kenjiArai 3:35ac9ee7d2d6 63 USBHostMSD msd;
kenjiArai 3:35ac9ee7d2d6 64
kenjiArai 3:35ac9ee7d2d6 65 // RAM ------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 66 bool flag_opening_done = false;
kenjiArai 3:35ac9ee7d2d6 67
kenjiArai 3:35ac9ee7d2d6 68 // ROM / Constant data --------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 69 const int X0 = 0; // origin of x axis
kenjiArai 3:35ac9ee7d2d6 70 const int Y0 = 0; // origin of y axis
kenjiArai 3:35ac9ee7d2d6 71
kenjiArai 3:35ac9ee7d2d6 72 const int NX = 670; // number of pixels for horizon
kenjiArai 3:35ac9ee7d2d6 73 const int NY = 542; // number of pixels for vertical
kenjiArai 3:35ac9ee7d2d6 74
kenjiArai 3:35ac9ee7d2d6 75 // Function prototypes --------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 76 static void tsk_0(void const *args);
kenjiArai 3:35ac9ee7d2d6 77 static void tsk_1(void const *args);
kenjiArai 3:35ac9ee7d2d6 78 static void tsk_2(void const *args);
kenjiArai 3:35ac9ee7d2d6 79 static void tsk_3(void const *args);
kenjiArai 3:35ac9ee7d2d6 80
kenjiArai 3:35ac9ee7d2d6 81 //extern void time_enter_mode(void);
kenjiArai 3:35ac9ee7d2d6 82 static void goto_standby(void);
kenjiArai 3:35ac9ee7d2d6 83
kenjiArai 3:35ac9ee7d2d6 84 //extern void drawImage(const char * name, uint16_t x, uint16_t y);
kenjiArai 3:35ac9ee7d2d6 85 extern void draw_bitmap(uint8_t *Name_BMP, uint32_t Xpos, uint32_t Ypos);
kenjiArai 3:35ac9ee7d2d6 86 extern void task_opening_action(void const *args);
kenjiArai 3:35ac9ee7d2d6 87
kenjiArai 3:35ac9ee7d2d6 88 //------------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 89 // Control Program
kenjiArai 3:35ac9ee7d2d6 90 //------------------------------------------------------------------------------
kenjiArai 3:35ac9ee7d2d6 91 osThreadDef(task_opening_action, osPriorityNormal,4096);
kenjiArai 3:35ac9ee7d2d6 92 osThreadDef(tsk_1, osPriorityNormal,4096);
kenjiArai 3:35ac9ee7d2d6 93 osThreadDef(tsk_2, osPriorityNormal,4096);
kenjiArai 3:35ac9ee7d2d6 94 osThreadDef(tsk_3, osPriorityNormal,4096);
kenjiArai 3:35ac9ee7d2d6 95
kenjiArai 3:35ac9ee7d2d6 96 int main()
kenjiArai 3:35ac9ee7d2d6 97 {
kenjiArai 3:35ac9ee7d2d6 98 flag_opening_done = false;
kenjiArai 3:35ac9ee7d2d6 99 osThreadId id0, id1, id2, id3;
kenjiArai 3:35ac9ee7d2d6 100 DBG("line:%d\r\n", __LINE__);
kenjiArai 3:35ac9ee7d2d6 101 id0 = osThreadCreate(osThread(task_opening_action), NULL);
kenjiArai 3:35ac9ee7d2d6 102 while (flag_opening_done == false) {
kenjiArai 3:35ac9ee7d2d6 103 DBG("line:%d\r\n", __LINE__);
kenjiArai 3:35ac9ee7d2d6 104 ThisThread::sleep_for(100);
kenjiArai 3:35ac9ee7d2d6 105 }
kenjiArai 3:35ac9ee7d2d6 106 osThreadTerminate(id0);
kenjiArai 3:35ac9ee7d2d6 107 //
kenjiArai 3:35ac9ee7d2d6 108 id1 = osThreadCreate(osThread(tsk_1), NULL);
kenjiArai 3:35ac9ee7d2d6 109 id2 = osThreadCreate(osThread(tsk_2), NULL);
kenjiArai 3:35ac9ee7d2d6 110 id3 = osThreadCreate(osThread(tsk_3), NULL);
kenjiArai 3:35ac9ee7d2d6 111 pc.printf("id0=0x%x, id1=0x%x, id2=0x%x, id3=0x%x\r\n",
kenjiArai 3:35ac9ee7d2d6 112 (uint32_t)id0, (uint32_t)id1, (uint32_t)id2, (uint32_t)id3);
kenjiArai 3:35ac9ee7d2d6 113 while(true) {
kenjiArai 3:35ac9ee7d2d6 114 ThisThread::sleep_for(FOREVER);
kenjiArai 3:35ac9ee7d2d6 115 }
kenjiArai 3:35ac9ee7d2d6 116 }
kenjiArai 3:35ac9ee7d2d6 117
kenjiArai 3:35ac9ee7d2d6 118 void tsk_1(void const *args)
kenjiArai 3:35ac9ee7d2d6 119 {
kenjiArai 3:35ac9ee7d2d6 120 while(true) {
kenjiArai 3:35ac9ee7d2d6 121 led_red = LEDON;
kenjiArai 3:35ac9ee7d2d6 122 ThisThread::sleep_for(1000);
kenjiArai 3:35ac9ee7d2d6 123 led_red = LEDOFF;
kenjiArai 3:35ac9ee7d2d6 124 ThisThread::sleep_for(1000);
kenjiArai 3:35ac9ee7d2d6 125 }
kenjiArai 3:35ac9ee7d2d6 126 }
kenjiArai 3:35ac9ee7d2d6 127
kenjiArai 3:35ac9ee7d2d6 128 void tsk_2(void const *args)
kenjiArai 3:35ac9ee7d2d6 129 {
kenjiArai 3:35ac9ee7d2d6 130 while(true) {
kenjiArai 3:35ac9ee7d2d6 131 led_green0 = LEDON;
kenjiArai 3:35ac9ee7d2d6 132 ThisThread::sleep_for(1500);
kenjiArai 3:35ac9ee7d2d6 133 led_green0 = LEDOFF;
kenjiArai 3:35ac9ee7d2d6 134 ThisThread::sleep_for(1500);
kenjiArai 3:35ac9ee7d2d6 135 }
kenjiArai 3:35ac9ee7d2d6 136 }
kenjiArai 3:35ac9ee7d2d6 137
kenjiArai 3:35ac9ee7d2d6 138 void tsk_3(void const *args)
kenjiArai 3:35ac9ee7d2d6 139 {
kenjiArai 3:35ac9ee7d2d6 140 while(true) {
kenjiArai 3:35ac9ee7d2d6 141 led_green1 = LEDON;
kenjiArai 3:35ac9ee7d2d6 142 ThisThread::sleep_for(2000);
kenjiArai 3:35ac9ee7d2d6 143 led_green1 = LEDOFF;
kenjiArai 3:35ac9ee7d2d6 144 ThisThread::sleep_for(2000);
kenjiArai 3:35ac9ee7d2d6 145 }
kenjiArai 3:35ac9ee7d2d6 146 }
kenjiArai 3:35ac9ee7d2d6 147
kenjiArai 3:35ac9ee7d2d6 148 void goto_standby(void)
kenjiArai 3:35ac9ee7d2d6 149 {
kenjiArai 3:35ac9ee7d2d6 150 ThisThread::sleep_for(0x7fffffff); // sleep 24 days
kenjiArai 3:35ac9ee7d2d6 151 }
kenjiArai 3:35ac9ee7d2d6 152
kenjiArai 3:35ac9ee7d2d6 153 #endif