Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed LPC11U35_MCP41HV51-503EST
main.cpp@0:df1e1f84ded8, 2020-08-17 (annotated)
- Committer:
- ryousato
- Date:
- Mon Aug 17 01:01:49 2020 +0000
- Revision:
- 0:df1e1f84ded8
- Child:
- 1:88f0bc1e1aff
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ryousato | 0:df1e1f84ded8 | 1 | ////////////////////////////////////////////////// |
ryousato | 0:df1e1f84ded8 | 2 | // Include Files |
ryousato | 0:df1e1f84ded8 | 3 | #include "mbed.h" |
ryousato | 0:df1e1f84ded8 | 4 | #include "LPC11Uxx.h" |
ryousato | 0:df1e1f84ded8 | 5 | #include "USBSerial.h" |
ryousato | 0:df1e1f84ded8 | 6 | #include "stdio.h" |
ryousato | 0:df1e1f84ded8 | 7 | #include "math.h" |
ryousato | 0:df1e1f84ded8 | 8 | ////////////////////////////////////////////////// |
ryousato | 0:df1e1f84ded8 | 9 | |
ryousato | 0:df1e1f84ded8 | 10 | //Configure the PC Serial Port for CDC USB |
ryousato | 0:df1e1f84ded8 | 11 | USBSerial serial; |
ryousato | 0:df1e1f84ded8 | 12 | Serial device(P0_19,P0_18); |
ryousato | 0:df1e1f84ded8 | 13 | |
ryousato | 0:df1e1f84ded8 | 14 | //Pin Defines |
ryousato | 0:df1e1f84ded8 | 15 | DigitalOut myled(LED1); |
ryousato | 0:df1e1f84ded8 | 16 | |
ryousato | 0:df1e1f84ded8 | 17 | /* |
ryousato | 0:df1e1f84ded8 | 18 | DigitalOut coilEN1(P0_1); |
ryousato | 0:df1e1f84ded8 | 19 | DigitalOut coilEN2(P0_2); |
ryousato | 0:df1e1f84ded8 | 20 | DigitalOut coilEN3(P0_3); |
ryousato | 0:df1e1f84ded8 | 21 | DigitalOut coilEN4(P0_4); |
ryousato | 0:df1e1f84ded8 | 22 | DigitalOut coilEN5(P0_5); |
ryousato | 0:df1e1f84ded8 | 23 | DigitalOut coilEN6(P0_20); |
ryousato | 0:df1e1f84ded8 | 24 | DigitalOut coilEN7(P1_19); |
ryousato | 0:df1e1f84ded8 | 25 | |
ryousato | 0:df1e1f84ded8 | 26 | DigitalOut ENn(P0_16); |
ryousato | 0:df1e1f84ded8 | 27 | DigitalOut addr0(P0_17); |
ryousato | 0:df1e1f84ded8 | 28 | DigitalOut addr1(P0_18); |
ryousato | 0:df1e1f84ded8 | 29 | DigitalOut addr2(P0_19); |
ryousato | 0:df1e1f84ded8 | 30 | |
ryousato | 0:df1e1f84ded8 | 31 | DigitalOut SCT_AMP(P0_10); |
ryousato | 0:df1e1f84ded8 | 32 | DigitalOut WLATn(P0_23); |
ryousato | 0:df1e1f84ded8 | 33 | DigitalOut SHDNn(P1_15); |
ryousato | 0:df1e1f84ded8 | 34 | |
ryousato | 0:df1e1f84ded8 | 35 | AnalogIn AD_TRANS_IN(P0_11); |
ryousato | 0:df1e1f84ded8 | 36 | AnalogIn AD_CT_IN(P0_12); |
ryousato | 0:df1e1f84ded8 | 37 | |
ryousato | 0:df1e1f84ded8 | 38 | SPI POT_SPI(P0_9, P0_8, P0_6); |
ryousato | 0:df1e1f84ded8 | 39 | */ |
ryousato | 0:df1e1f84ded8 | 40 | |
ryousato | 0:df1e1f84ded8 | 41 | |
ryousato | 0:df1e1f84ded8 | 42 | void setup() { |
ryousato | 0:df1e1f84ded8 | 43 | device.baud(115200); |
ryousato | 0:df1e1f84ded8 | 44 | |
ryousato | 0:df1e1f84ded8 | 45 | /* POT_SPI.format(8, 3); |
ryousato | 0:df1e1f84ded8 | 46 | POT_SPI.frequency(1000000); |
ryousato | 0:df1e1f84ded8 | 47 | |
ryousato | 0:df1e1f84ded8 | 48 | coilEN1 = 0; |
ryousato | 0:df1e1f84ded8 | 49 | coilEN2 = 0; |
ryousato | 0:df1e1f84ded8 | 50 | coilEN3 = 0; |
ryousato | 0:df1e1f84ded8 | 51 | coilEN4 = 0; |
ryousato | 0:df1e1f84ded8 | 52 | coilEN5 = 0; |
ryousato | 0:df1e1f84ded8 | 53 | coilEN6 = 0; |
ryousato | 0:df1e1f84ded8 | 54 | coilEN7 = 0; |
ryousato | 0:df1e1f84ded8 | 55 | |
ryousato | 0:df1e1f84ded8 | 56 | ENn = 1; |
ryousato | 0:df1e1f84ded8 | 57 | addr0 = 0; |
ryousato | 0:df1e1f84ded8 | 58 | addr1 = 0; |
ryousato | 0:df1e1f84ded8 | 59 | addr2 = 0; |
ryousato | 0:df1e1f84ded8 | 60 | |
ryousato | 0:df1e1f84ded8 | 61 | SCT_AMP = 0; |
ryousato | 0:df1e1f84ded8 | 62 | WLATn = 1; |
ryousato | 0:df1e1f84ded8 | 63 | SHDNn = 0; |
ryousato | 0:df1e1f84ded8 | 64 | */ |
ryousato | 0:df1e1f84ded8 | 65 | |
ryousato | 0:df1e1f84ded8 | 66 | wait(0.5); |
ryousato | 0:df1e1f84ded8 | 67 | serial.printf("Hello World!\r\n"); |
ryousato | 0:df1e1f84ded8 | 68 | wait(0.5); |
ryousato | 0:df1e1f84ded8 | 69 | } |
ryousato | 0:df1e1f84ded8 | 70 | |
ryousato | 0:df1e1f84ded8 | 71 | void helpwrite(){ |
ryousato | 0:df1e1f84ded8 | 72 | serial.printf("\r\ncmd"); |
ryousato | 0:df1e1f84ded8 | 73 | serial.printf("\r\nhelp"); |
ryousato | 0:df1e1f84ded8 | 74 | serial.printf("\r\nOK"); |
ryousato | 0:df1e1f84ded8 | 75 | } |
ryousato | 0:df1e1f84ded8 | 76 | |
ryousato | 0:df1e1f84ded8 | 77 | void serial_inout(){ |
ryousato | 0:df1e1f84ded8 | 78 | char moji[32]; //入力文字列 |
ryousato | 0:df1e1f84ded8 | 79 | int count = 0; //文字数カウンタ |
ryousato | 0:df1e1f84ded8 | 80 | |
ryousato | 0:df1e1f84ded8 | 81 | if(serial.readable()) { // 受信確認 |
ryousato | 0:df1e1f84ded8 | 82 | moji[count] = serial.getc(); //キーボード入力文字を1文字ずつmojiに代入 |
ryousato | 0:df1e1f84ded8 | 83 | serial.printf("%c(%d)", moji[count],count); //シリアル出力表示 |
ryousato | 0:df1e1f84ded8 | 84 | |
ryousato | 0:df1e1f84ded8 | 85 | if(count == 31 ){ // ①文字数が既定の個数になった場合 |
ryousato | 0:df1e1f84ded8 | 86 | moji[31] = '\0'; // 末尾に終端文字を入れる |
ryousato | 0:df1e1f84ded8 | 87 | count = 0; // 文字カウンタをリセット |
ryousato | 0:df1e1f84ded8 | 88 | serial.printf("\r\nERR!\r\n"); |
ryousato | 0:df1e1f84ded8 | 89 | } |
ryousato | 0:df1e1f84ded8 | 90 | |
ryousato | 0:df1e1f84ded8 | 91 | // else if(moji[0] == '\n'){count = 0;} |
ryousato | 0:df1e1f84ded8 | 92 | |
ryousato | 0:df1e1f84ded8 | 93 | else if((moji[count] == '\r')) { // ②CRを受信した場合 |
ryousato | 0:df1e1f84ded8 | 94 | moji[count] = '\0'; // 末尾に終端文字を入れる |
ryousato | 0:df1e1f84ded8 | 95 | count = 0; // 文字カウンタをリセット |
ryousato | 0:df1e1f84ded8 | 96 | if(strcmp(moji, "cmd") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 97 | else if(strcmp(moji, "help") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 98 | else if(strcmp(moji, "?") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 99 | else if(strcmp(moji, "initial") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 100 | else if(strcmp(moji, "VON") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 101 | else if(strcmp(moji, "VOFF") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 102 | else if(strcmp(moji, "50Hz") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 103 | else if(strcmp(moji, "60Hz") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 104 | else if(strcmp(moji, "trans_adj") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 105 | else if(strcmp(moji, "ct1_adj") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 106 | else if(strcmp(moji, "ct2_adj") == 0){helpwrite();} |
ryousato | 0:df1e1f84ded8 | 107 | else serial.printf("\r\nNG %c %d", moji, count); |
ryousato | 0:df1e1f84ded8 | 108 | } |
ryousato | 0:df1e1f84ded8 | 109 | |
ryousato | 0:df1e1f84ded8 | 110 | else count++; // 文字カウンタに1加算 |
ryousato | 0:df1e1f84ded8 | 111 | } |
ryousato | 0:df1e1f84ded8 | 112 | } |
ryousato | 0:df1e1f84ded8 | 113 | |
ryousato | 0:df1e1f84ded8 | 114 | ////////////////////////////////////////////////// |
ryousato | 0:df1e1f84ded8 | 115 | // main Program |
ryousato | 0:df1e1f84ded8 | 116 | int main() { |
ryousato | 0:df1e1f84ded8 | 117 | setup(); |
ryousato | 0:df1e1f84ded8 | 118 | |
ryousato | 0:df1e1f84ded8 | 119 | myled = 1; |
ryousato | 0:df1e1f84ded8 | 120 | |
ryousato | 0:df1e1f84ded8 | 121 | while(1){ |
ryousato | 0:df1e1f84ded8 | 122 | serial_inout(); |
ryousato | 0:df1e1f84ded8 | 123 | } |
ryousato | 0:df1e1f84ded8 | 124 | } |
ryousato | 0:df1e1f84ded8 | 125 | ////////////////////////////////////////////////// |
ryousato | 0:df1e1f84ded8 | 126 | |
ryousato | 0:df1e1f84ded8 | 127 |