電動バイク制御基板プログラム
Dependencies: BufferedSerial SDFileSystem mbed
main.cpp@2:1a62df057057, 2016-11-05 (annotated)
- Committer:
- NT32
- Date:
- Sat Nov 05 10:16:21 2016 +0000
- Revision:
- 2:1a62df057057
- Parent:
- 1:f61fbb8e4352
V850?????; rx->tx????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
NT32 | 0:7210cdf801f9 | 1 | #include "mbed.h" |
NT32 | 0:7210cdf801f9 | 2 | #include "SDFileSystem.h" |
NT32 | 0:7210cdf801f9 | 3 | #define SEL_GPS 0 |
NT32 | 0:7210cdf801f9 | 4 | #define SEL_BMS 1 |
NT32 | 0:7210cdf801f9 | 5 | #define SEL_HNDL 2 |
NT32 | 0:7210cdf801f9 | 6 | #define SEL_FELICA 3 |
NT32 | 0:7210cdf801f9 | 7 | #define CELL_NUM 24 |
NT32 | 0:7210cdf801f9 | 8 | DigitalOut led1(P1_1); |
NT32 | 0:7210cdf801f9 | 9 | DigitalOut led2(P0_9); |
NT32 | 0:7210cdf801f9 | 10 | BusOut selUart(P1_5, P1_4); |
NT32 | 2:1a62df057057 | 11 | //Serial uart_cpld(P1_0, P0_31); |
NT32 | 0:7210cdf801f9 | 12 | //Serial uart_v850(P0_28, P0_29); |
NT32 | 0:7210cdf801f9 | 13 | //Serial uart_gps(P0_26, P0_27); |
NT32 | 2:1a62df057057 | 14 | //↓txをCPLDにして,rxをV850にする |
NT32 | 2:1a62df057057 | 15 | Serial uart_handle(P0_0, P1_3); //<=(tx,rx)で,今は rx->tx と素通り |
NT32 | 0:7210cdf801f9 | 16 | //Serial uart_felica(P0_4, P0_2); |
NT32 | 2:1a62df057057 | 17 | Serial pc(P0_18,P0_13); |
NT32 | 0:7210cdf801f9 | 18 | //SDFileSystem sd(P0_7, P0_5, P0_6, P0_8, "sd"); |
NT32 | 0:7210cdf801f9 | 19 | |
NT32 | 0:7210cdf801f9 | 20 | int main() { |
NT32 | 0:7210cdf801f9 | 21 | int cellVol[CELL_NUM] = {0,0,0,0,0,0,0,0,0,0,0,0, |
NT32 | 0:7210cdf801f9 | 22 | 0,0,0,0,0,0,0,0,0,0,0,0}; |
NT32 | 0:7210cdf801f9 | 23 | int cellMinVol, cellMaxVol, cellAvgVol; |
NT32 | 2:1a62df057057 | 24 | char buff[32]; |
NT32 | 2:1a62df057057 | 25 | uart_handle.baud(38400); |
NT32 | 2:1a62df057057 | 26 | // selUartがマルチプレクサのピン |
NT32 | 2:1a62df057057 | 27 | selUart = SEL_HNDL; |
NT32 | 0:7210cdf801f9 | 28 | while(1) { |
NT32 | 2:1a62df057057 | 29 | led1 = !led1; |
NT32 | 2:1a62df057057 | 30 | uart_handle.scanf("%s", buff); |
NT32 | 2:1a62df057057 | 31 | if(buff[0] == 's'){ |
NT32 | 2:1a62df057057 | 32 | // pc.printf("\033[%d;%dH" ,0,0); //デバッグ用Tera Term出力 |
NT32 | 2:1a62df057057 | 33 | // pc.printf("%s\n", buff); |
NT32 | 2:1a62df057057 | 34 | uart_handle.printf("%s\n", buff); |
NT32 | 2:1a62df057057 | 35 | } |
NT32 | 2:1a62df057057 | 36 | |
NT32 | 0:7210cdf801f9 | 37 | //================================================= |
NT32 | 0:7210cdf801f9 | 38 | // バッテリ管理基板との通信 |
NT32 | 0:7210cdf801f9 | 39 | //================================================= |
NT32 | 2:1a62df057057 | 40 | // led1 = 0; |
NT32 | 2:1a62df057057 | 41 | // selUart = SEL_BMS; |
NT32 | 2:1a62df057057 | 42 | // uart_cpld.putc('s'); |
NT32 | 2:1a62df057057 | 43 | // for (int i = 0; i < CELL_NUM; ++i) |
NT32 | 2:1a62df057057 | 44 | // { |
NT32 | 2:1a62df057057 | 45 | // // 個別セル電圧取得 |
NT32 | 2:1a62df057057 | 46 | // uart_cpld.scanf("%d\n", &cellVol[i]); |
NT32 | 2:1a62df057057 | 47 | // } |
NT32 | 2:1a62df057057 | 48 | // //最低->最高->平均で取得 |
NT32 | 2:1a62df057057 | 49 | // uart_cpld.scanf("%d\n", &cellMinVol); |
NT32 | 2:1a62df057057 | 50 | // uart_cpld.scanf("%d\n", &cellMaxVol); |
NT32 | 2:1a62df057057 | 51 | // uart_cpld.scanf("%d\n", &cellAvgVol); |
NT32 | 2:1a62df057057 | 52 | // led1 = 1; |
NT32 | 0:7210cdf801f9 | 53 | |
NT32 | 0:7210cdf801f9 | 54 | //================================================= |
NT32 | 0:7210cdf801f9 | 55 | // 表示装置との通信 |
NT32 | 0:7210cdf801f9 | 56 | //================================================= |
NT32 | 2:1a62df057057 | 57 | // led2 = 0; |
NT32 | 2:1a62df057057 | 58 | // selUart = SEL_HNDL; |
NT32 | 2:1a62df057057 | 59 | // uart_cpld.putc('m'); |
NT32 | 2:1a62df057057 | 60 | // uart_cpld.printf("\033[2J"); //デバッグ用Tera Term出力 |
NT32 | 2:1a62df057057 | 61 | // uart_cpld.printf("\033[%d;%dH" ,0,0); //デバッグ用Tera Term出力 |
NT32 | 2:1a62df057057 | 62 | // |
NT32 | 2:1a62df057057 | 63 | // wait(0.01); |
NT32 | 2:1a62df057057 | 64 | // for (int i = 0; i < CELL_NUM; ++i) |
NT32 | 2:1a62df057057 | 65 | // { |
NT32 | 2:1a62df057057 | 66 | // // 個別セル電圧取得 |
NT32 | 2:1a62df057057 | 67 | // uart_cpld.printf("%d\n",cellVol[i]); |
NT32 | 2:1a62df057057 | 68 | // } |
NT32 | 2:1a62df057057 | 69 | // //最低->最高->平均で取得 |
NT32 | 2:1a62df057057 | 70 | // uart_cpld.printf("%d\n",cellMinVol); |
NT32 | 2:1a62df057057 | 71 | // uart_cpld.printf("%d\n",cellMaxVol); |
NT32 | 2:1a62df057057 | 72 | // uart_cpld.printf("%d\n",cellAvgVol); |
NT32 | 2:1a62df057057 | 73 | // |
NT32 | 2:1a62df057057 | 74 | // led2 = 1; |
NT32 | 0:7210cdf801f9 | 75 | |
NT32 | 0:7210cdf801f9 | 76 | } |
NT32 | 0:7210cdf801f9 | 77 | } |