PushToGo on STM32F429-Disco Board
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb
main.cpp@3:17d124d08a01, 2018-09-09 (annotated)
- Committer:
- caoyu@caoyuan9642-desktop.MIT.EDU
- Date:
- Sun Sep 09 16:03:11 2018 -0400
- Revision:
- 3:17d124d08a01
- Parent:
- 1:64c1fd738059
testcommit
user: caoyuan96421@gmail.com
branch 'default'
added .mbedignore
changed main.cpp
Who changed what in which revision?
User | Revision | Line number | New 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 |