PushToGo on STM32F429-Disco Board

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb

Committer:
caoyu@caoyuan9642-desktop.MIT.EDU
Date:
Sun Sep 23 02:31:28 2018 -0400
Revision:
8:f0455a1d4709
Parent:
3:17d124d08a01
merge

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caoyuan9642 0:084d1dae2ea1 1 #include "mbed.h"
caoyuan9642 0:084d1dae2ea1 2 #include <LCDConsole.h>
caoyuan9642 0:084d1dae2ea1 3 #include <stdio.h>
caoyuan9642 0:084d1dae2ea1 4 #include "SDBlockDevice.h"
caoyuan9642 0:084d1dae2ea1 5 #include "FATFileSystem.h"
caoyuan9642 0:084d1dae2ea1 6 #include "EquatorialMount.h"
caoyuan9642 0:084d1dae2ea1 7 #include "MCULoadMeasurement.h"
caoyuan9642 1:64c1fd738059 8 #include "telescope_hardware.h"
caoyuan9642 0:084d1dae2ea1 9
caoyuan9642 0:084d1dae2ea1 10 Thread blinker_thread(osPriorityNormal, 1024, NULL, "Blinker");
caoyuan9642 0:084d1dae2ea1 11 DigitalOut led1(LED1);
caoyuan9642 0:084d1dae2ea1 12
caoyuan9642 0:084d1dae2ea1 13 void blink()
caoyuan9642 0:084d1dae2ea1 14 {
caoyuan9642 0:084d1dae2ea1 15 while (true)
caoyuan9642 0:084d1dae2ea1 16 {
caoyuan9642 0:084d1dae2ea1 17 led1 = !led1;
caoyuan9642 0:084d1dae2ea1 18 Thread::wait(80);
caoyuan9642 0:084d1dae2ea1 19 }
caoyuan9642 0:084d1dae2ea1 20 }
caoyuan9642 0:084d1dae2ea1 21
caoyuan9642 0:084d1dae2ea1 22 //Thread printer_th(osPriorityNormal, 2048, NULL, "Printer Thread");
caoyuan9642 0:084d1dae2ea1 23 ///* Mail */
caoyuan9642 0:084d1dae2ea1 24 //typedef struct
caoyuan9642 0:084d1dae2ea1 25 //{
caoyuan9642 0:084d1dae2ea1 26 // char msg[128];
caoyuan9642 0:084d1dae2ea1 27 //} mail_t;
caoyuan9642 0:084d1dae2ea1 28 //
caoyuan9642 0:084d1dae2ea1 29 //typedef Mail<mail_t, 256> MB_t;
caoyuan9642 0:084d1dae2ea1 30 //MB_t mbox;
caoyuan9642 0:084d1dae2ea1 31 //Serial pc(USBTX, USBRX, 115200);
caoyuan9642 0:084d1dae2ea1 32 //
caoyuan9642 0:084d1dae2ea1 33 //Timer tim;
caoyuan9642 0:084d1dae2ea1 34 //void printer(MB_t *mbox)
caoyuan9642 0:084d1dae2ea1 35 //{
caoyuan9642 0:084d1dae2ea1 36 // while (true)
caoyuan9642 0:084d1dae2ea1 37 // {
caoyuan9642 0:084d1dae2ea1 38 // mail_t *m = (mail_t *) mbox->get().value.p;
caoyuan9642 0:084d1dae2ea1 39 // pc.printf("%s\r\n", m->msg);
caoyuan9642 0:084d1dae2ea1 40 // mbox->free(m);
caoyuan9642 0:084d1dae2ea1 41 // }
caoyuan9642 0:084d1dae2ea1 42 //}
caoyuan9642 0:084d1dae2ea1 43
caoyuan9642 0:084d1dae2ea1 44 /**
caoyuan9642 0:084d1dae2ea1 45 * Printf for debugging use. Takes about 20us for each call. Can be called from any context
caoyuan9642 0:084d1dae2ea1 46 */
caoyuan9642 0:084d1dae2ea1 47 //void xprintf(const char* format, ...)
caoyuan9642 0:084d1dae2ea1 48 //{
caoyuan9642 0:084d1dae2ea1 49 // uint16_t len;
caoyuan9642 0:084d1dae2ea1 50 // va_list argptr;
caoyuan9642 0:084d1dae2ea1 51 // va_start(argptr, format);
caoyuan9642 0:084d1dae2ea1 52 //
caoyuan9642 0:084d1dae2ea1 53 // mail_t *m = mbox.alloc();
caoyuan9642 0:084d1dae2ea1 54 // len = sprintf(m->msg, "%9d>", tim.read_us());
caoyuan9642 0:084d1dae2ea1 55 // len += vsprintf(&m->msg[len], format, argptr);
caoyuan9642 0:084d1dae2ea1 56 // mbox.put(m);
caoyuan9642 0:084d1dae2ea1 57 //
caoyuan9642 0:084d1dae2ea1 58 // va_end(argptr);
caoyuan9642 0:084d1dae2ea1 59 //}
caoyuan9642 0:084d1dae2ea1 60
caoyuan9642 0:084d1dae2ea1 61 int main()
caoyuan9642 0:084d1dae2ea1 62 {
caoyuan9642 0:084d1dae2ea1 63 /*Enable LCD redirecting*/
caoyuan9642 0:084d1dae2ea1 64 LCDConsole::init(0, 0, 240, 280);
caoyuan9642 0:084d1dae2ea1 65 LCDConsole::redirect(true);
caoyuan9642 0:084d1dae2ea1 66 setvbuf(stdout, NULL, _IONBF, 0);
caoyuan9642 0:084d1dae2ea1 67 setvbuf(stderr, NULL, _IONBF, 0);
caoyuan9642 0:084d1dae2ea1 68
caoyuan9642 0:084d1dae2ea1 69 printf("System initialized.\n");
caoyuan9642 0:084d1dae2ea1 70
caoyuan9642 0:084d1dae2ea1 71 blinker_thread.start(blink);
caoyuan9642 1:64c1fd738059 72 telescopeHardwareInit();
caoyuan9642 1:64c1fd738059 73 telescopeServerInit();
caoyuan9642 0:084d1dae2ea1 74
caoyuan9642 0:084d1dae2ea1 75 while (1)
caoyuan9642 0:084d1dae2ea1 76 {
caoyuan9642 0:084d1dae2ea1 77 Thread::wait(1000);
caoyuan9642 0:084d1dae2ea1 78 }
caoyuan9642 0:084d1dae2ea1 79 }
caoyuan9642 0:084d1dae2ea1 80
caoyuan9642 0:084d1dae2ea1 81