PushToGo on STM32F429-Disco Board

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb

Committer:
caoyuan9642
Date:
Sun Aug 19 05:20:21 2018 +0000
Revision:
0:084d1dae2ea1
Child:
1:64c1fd738059
v0.1

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 0:084d1dae2ea1 8
caoyuan9642 0:084d1dae2ea1 9 Thread blinker_thread(osPriorityNormal, 1024, NULL, "Blinker");
caoyuan9642 0:084d1dae2ea1 10 DigitalOut led1(LED1);
caoyuan9642 0:084d1dae2ea1 11 //DigitalOut led1(PB_3_ALT0);
caoyuan9642 0:084d1dae2ea1 12 //DigitalOut led2(PC_12);
caoyuan9642 0:084d1dae2ea1 13 //DigitalOut led3(PE_3);
caoyuan9642 0:084d1dae2ea1 14 //DigitalOut led4(PB_7);
caoyuan9642 0:084d1dae2ea1 15
caoyuan9642 0:084d1dae2ea1 16 void blink()
caoyuan9642 0:084d1dae2ea1 17 {
caoyuan9642 0:084d1dae2ea1 18 while (true)
caoyuan9642 0:084d1dae2ea1 19 {
caoyuan9642 0:084d1dae2ea1 20 led1 = !led1;
caoyuan9642 0:084d1dae2ea1 21 // led2 = !led2;
caoyuan9642 0:084d1dae2ea1 22 // led3 = !led3;
caoyuan9642 0:084d1dae2ea1 23 // led4 = !led4;
caoyuan9642 0:084d1dae2ea1 24 Thread::wait(80);
caoyuan9642 0:084d1dae2ea1 25 }
caoyuan9642 0:084d1dae2ea1 26 }
caoyuan9642 0:084d1dae2ea1 27
caoyuan9642 0:084d1dae2ea1 28 //Thread printer_th(osPriorityNormal, 2048, NULL, "Printer Thread");
caoyuan9642 0:084d1dae2ea1 29 ///* Mail */
caoyuan9642 0:084d1dae2ea1 30 //typedef struct
caoyuan9642 0:084d1dae2ea1 31 //{
caoyuan9642 0:084d1dae2ea1 32 // char msg[128];
caoyuan9642 0:084d1dae2ea1 33 //} mail_t;
caoyuan9642 0:084d1dae2ea1 34 //
caoyuan9642 0:084d1dae2ea1 35 //typedef Mail<mail_t, 256> MB_t;
caoyuan9642 0:084d1dae2ea1 36 //MB_t mbox;
caoyuan9642 0:084d1dae2ea1 37 //Serial pc(USBTX, USBRX, 115200);
caoyuan9642 0:084d1dae2ea1 38 //
caoyuan9642 0:084d1dae2ea1 39 //Timer tim;
caoyuan9642 0:084d1dae2ea1 40 //void printer(MB_t *mbox)
caoyuan9642 0:084d1dae2ea1 41 //{
caoyuan9642 0:084d1dae2ea1 42 // while (true)
caoyuan9642 0:084d1dae2ea1 43 // {
caoyuan9642 0:084d1dae2ea1 44 // mail_t *m = (mail_t *) mbox->get().value.p;
caoyuan9642 0:084d1dae2ea1 45 // pc.printf("%s\r\n", m->msg);
caoyuan9642 0:084d1dae2ea1 46 // mbox->free(m);
caoyuan9642 0:084d1dae2ea1 47 // }
caoyuan9642 0:084d1dae2ea1 48 //}
caoyuan9642 0:084d1dae2ea1 49
caoyuan9642 0:084d1dae2ea1 50 /**
caoyuan9642 0:084d1dae2ea1 51 * Printf for debugging use. Takes about 20us for each call. Can be called from any context
caoyuan9642 0:084d1dae2ea1 52 */
caoyuan9642 0:084d1dae2ea1 53 //void xprintf(const char* format, ...)
caoyuan9642 0:084d1dae2ea1 54 //{
caoyuan9642 0:084d1dae2ea1 55 // uint16_t len;
caoyuan9642 0:084d1dae2ea1 56 // va_list argptr;
caoyuan9642 0:084d1dae2ea1 57 // va_start(argptr, format);
caoyuan9642 0:084d1dae2ea1 58 //
caoyuan9642 0:084d1dae2ea1 59 // mail_t *m = mbox.alloc();
caoyuan9642 0:084d1dae2ea1 60 // len = sprintf(m->msg, "%9d>", tim.read_us());
caoyuan9642 0:084d1dae2ea1 61 // len += vsprintf(&m->msg[len], format, argptr);
caoyuan9642 0:084d1dae2ea1 62 // mbox.put(m);
caoyuan9642 0:084d1dae2ea1 63 //
caoyuan9642 0:084d1dae2ea1 64 // va_end(argptr);
caoyuan9642 0:084d1dae2ea1 65 //}
caoyuan9642 0:084d1dae2ea1 66 extern void test_stepper();
caoyuan9642 0:084d1dae2ea1 67 extern void testmath();
caoyuan9642 0:084d1dae2ea1 68 extern void test_em();
caoyuan9642 0:084d1dae2ea1 69 extern void test_deapply();
caoyuan9642 0:084d1dae2ea1 70 extern void test_server();
caoyuan9642 0:084d1dae2ea1 71
caoyuan9642 0:084d1dae2ea1 72 //SDBlockDevice sdb(PA_7, PB_4, PA_5, PC_13);
caoyuan9642 0:084d1dae2ea1 73 //FATFileSystem fs("fs");
caoyuan9642 0:084d1dae2ea1 74
caoyuan9642 0:084d1dae2ea1 75 char s[128];
caoyuan9642 0:084d1dae2ea1 76
caoyuan9642 0:084d1dae2ea1 77 Thread test(osPriorityNormal, 16384, NULL, "test");
caoyuan9642 0:084d1dae2ea1 78
caoyuan9642 0:084d1dae2ea1 79 // Instrumentation
caoyuan9642 0:084d1dae2ea1 80
caoyuan9642 0:084d1dae2ea1 81 int main()
caoyuan9642 0:084d1dae2ea1 82 {
caoyuan9642 0:084d1dae2ea1 83 /*Enable LCD redirecting*/
caoyuan9642 0:084d1dae2ea1 84 LCDConsole::init(0, 0, 240, 280);
caoyuan9642 0:084d1dae2ea1 85 LCDConsole::redirect(true);
caoyuan9642 0:084d1dae2ea1 86 setvbuf(stdout, NULL, _IONBF, 0);
caoyuan9642 0:084d1dae2ea1 87 setvbuf(stderr, NULL, _IONBF, 0);
caoyuan9642 0:084d1dae2ea1 88
caoyuan9642 0:084d1dae2ea1 89 printf("System initialized.\n");
caoyuan9642 0:084d1dae2ea1 90
caoyuan9642 0:084d1dae2ea1 91 blinker_thread.start(blink);
caoyuan9642 0:084d1dae2ea1 92 // tim.start();
caoyuan9642 0:084d1dae2ea1 93 // printer_th.start(callback(printer, &mbox));
caoyuan9642 0:084d1dae2ea1 94 // xprintf("System initialized");
caoyuan9642 0:084d1dae2ea1 95 //
caoyuan9642 0:084d1dae2ea1 96 // if (fs.mount(&sdb) == 0)
caoyuan9642 0:084d1dae2ea1 97 // {
caoyuan9642 0:084d1dae2ea1 98 // FILE *fp = fopen("/fs/Hello.txt", "r");
caoyuan9642 0:084d1dae2ea1 99 // if (fp == NULL)
caoyuan9642 0:084d1dae2ea1 100 // {
caoyuan9642 0:084d1dae2ea1 101 // xprintf("Could not open file for write\n");
caoyuan9642 0:084d1dae2ea1 102 // }
caoyuan9642 0:084d1dae2ea1 103 // else
caoyuan9642 0:084d1dae2ea1 104 // {
caoyuan9642 0:084d1dae2ea1 105 // fgets(s, 128, fp);
caoyuan9642 0:084d1dae2ea1 106 // xprintf("%s", s);
caoyuan9642 0:084d1dae2ea1 107 // fclose(fp);
caoyuan9642 0:084d1dae2ea1 108 // }
caoyuan9642 0:084d1dae2ea1 109 //
caoyuan9642 0:084d1dae2ea1 110 // }
caoyuan9642 0:084d1dae2ea1 111 // else
caoyuan9642 0:084d1dae2ea1 112 // {
caoyuan9642 0:084d1dae2ea1 113 // xprintf("FS failed to load SD card.");
caoyuan9642 0:084d1dae2ea1 114 // }
caoyuan9642 0:084d1dae2ea1 115
caoyuan9642 0:084d1dae2ea1 116 // testmath();
caoyuan9642 0:084d1dae2ea1 117
caoyuan9642 0:084d1dae2ea1 118 // test_deapply();
caoyuan9642 0:084d1dae2ea1 119 test.start(test_server);
caoyuan9642 0:084d1dae2ea1 120
caoyuan9642 0:084d1dae2ea1 121 while (1)
caoyuan9642 0:084d1dae2ea1 122 {
caoyuan9642 0:084d1dae2ea1 123 // uint64_t timeNow = tim.read_high_resolution_us();
caoyuan9642 0:084d1dae2ea1 124 // printf("Hello world! ");
caoyuan9642 0:084d1dae2ea1 125 // fprintf(stderr, " asdjfk jaskldfj klasdjklf jklasdf %f %lld us\n", tim.read(),
caoyuan9642 0:084d1dae2ea1 126 // tim.read_high_resolution_us() - timeNow);
caoyuan9642 0:084d1dae2ea1 127 // printf("\r%d", i++);
caoyuan9642 0:084d1dae2ea1 128
caoyuan9642 0:084d1dae2ea1 129 Thread::wait(1000);
caoyuan9642 0:084d1dae2ea1 130 }
caoyuan9642 0:084d1dae2ea1 131 }
caoyuan9642 0:084d1dae2ea1 132
caoyuan9642 0:084d1dae2ea1 133