Atsumi Toda
/
twe-lite_main
twe-liteでのmain側プログラム。要改良
main.cpp@0:dd2e7831df58, 2018-02-23 (annotated)
- Committer:
- Joeatsumi
- Date:
- Fri Feb 23 04:20:23 2018 +0000
- Revision:
- 0:dd2e7831df58
2018/2/23
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Joeatsumi | 0:dd2e7831df58 | 1 | #include "mbed.h" |
Joeatsumi | 0:dd2e7831df58 | 2 | |
Joeatsumi | 0:dd2e7831df58 | 3 | #define DATA_SIZE 10 |
Joeatsumi | 0:dd2e7831df58 | 4 | |
Joeatsumi | 0:dd2e7831df58 | 5 | DigitalOut myled(LED1); |
Joeatsumi | 0:dd2e7831df58 | 6 | |
Joeatsumi | 0:dd2e7831df58 | 7 | Serial pc(USBTX,USBRX); |
Joeatsumi | 0:dd2e7831df58 | 8 | Serial twe(p9,p10); |
Joeatsumi | 0:dd2e7831df58 | 9 | |
Joeatsumi | 0:dd2e7831df58 | 10 | Ticker flipper; |
Joeatsumi | 0:dd2e7831df58 | 11 | |
Joeatsumi | 0:dd2e7831df58 | 12 | char rpm_array[3] = "00";//実は末尾にnullがあるので、要素が4つでも配列では5つの箱を用意している |
Joeatsumi | 0:dd2e7831df58 | 13 | char dam; |
Joeatsumi | 0:dd2e7831df58 | 14 | |
Joeatsumi | 0:dd2e7831df58 | 15 | int rpm=0; |
Joeatsumi | 0:dd2e7831df58 | 16 | |
Joeatsumi | 0:dd2e7831df58 | 17 | |
Joeatsumi | 0:dd2e7831df58 | 18 | void send(){ |
Joeatsumi | 0:dd2e7831df58 | 19 | |
Joeatsumi | 0:dd2e7831df58 | 20 | char DATA[DATA_SIZE] = {':', '0', '1', '0', '1', '3', '9', 'X', '\r', '\n'}; |
Joeatsumi | 0:dd2e7831df58 | 21 | //04 |
Joeatsumi | 0:dd2e7831df58 | 22 | /*:は送信時に必要なヘッダー。78は相手のID(0x78)。01は送信コマンドとして必要。 |
Joeatsumi | 0:dd2e7831df58 | 23 | 39は任意の値。Xはチェックサムの省略形。 \r\nは改行コマンド*/ |
Joeatsumi | 0:dd2e7831df58 | 24 | |
Joeatsumi | 0:dd2e7831df58 | 25 | for (int i = 0 ; i < DATA_SIZE ; i++){ |
Joeatsumi | 0:dd2e7831df58 | 26 | twe.putc(DATA[i]); |
Joeatsumi | 0:dd2e7831df58 | 27 | myled=1; |
Joeatsumi | 0:dd2e7831df58 | 28 | |
Joeatsumi | 0:dd2e7831df58 | 29 | } |
Joeatsumi | 0:dd2e7831df58 | 30 | |
Joeatsumi | 0:dd2e7831df58 | 31 | } |
Joeatsumi | 0:dd2e7831df58 | 32 | |
Joeatsumi | 0:dd2e7831df58 | 33 | |
Joeatsumi | 0:dd2e7831df58 | 34 | int main() { |
Joeatsumi | 0:dd2e7831df58 | 35 | pc.baud(115200); |
Joeatsumi | 0:dd2e7831df58 | 36 | twe.baud(115200); |
Joeatsumi | 0:dd2e7831df58 | 37 | |
Joeatsumi | 0:dd2e7831df58 | 38 | flipper.attach(&send, 0.05); |
Joeatsumi | 0:dd2e7831df58 | 39 | |
Joeatsumi | 0:dd2e7831df58 | 40 | |
Joeatsumi | 0:dd2e7831df58 | 41 | while(1) { |
Joeatsumi | 0:dd2e7831df58 | 42 | // pc.putc(twe.getc()); |
Joeatsumi | 0:dd2e7831df58 | 43 | |
Joeatsumi | 0:dd2e7831df58 | 44 | |
Joeatsumi | 0:dd2e7831df58 | 45 | if(twe.getc()==':'){ |
Joeatsumi | 0:dd2e7831df58 | 46 | if(twe.getc()=='0'){ |
Joeatsumi | 0:dd2e7831df58 | 47 | if(twe.getc()=='1'){ |
Joeatsumi | 0:dd2e7831df58 | 48 | dam=twe.getc(); |
Joeatsumi | 0:dd2e7831df58 | 49 | dam=twe.getc(); |
Joeatsumi | 0:dd2e7831df58 | 50 | |
Joeatsumi | 0:dd2e7831df58 | 51 | for (int i = 0; i <= 2; i++) { |
Joeatsumi | 0:dd2e7831df58 | 52 | rpm_array[i] =twe.getc();//高度の受信rpm+1000の値を文字列として受け取る |
Joeatsumi | 0:dd2e7831df58 | 53 | } |
Joeatsumi | 0:dd2e7831df58 | 54 | |
Joeatsumi | 0:dd2e7831df58 | 55 | rpm = atoi(rpm_array); |
Joeatsumi | 0:dd2e7831df58 | 56 | |
Joeatsumi | 0:dd2e7831df58 | 57 | pc.printf("%d\r\n",rpm); |
Joeatsumi | 0:dd2e7831df58 | 58 | |
Joeatsumi | 0:dd2e7831df58 | 59 | }//if(twe.getc()=='0') |
Joeatsumi | 0:dd2e7831df58 | 60 | }//if(twe.getc()==':') |
Joeatsumi | 0:dd2e7831df58 | 61 | } |
Joeatsumi | 0:dd2e7831df58 | 62 | |
Joeatsumi | 0:dd2e7831df58 | 63 | |
Joeatsumi | 0:dd2e7831df58 | 64 | }//while |
Joeatsumi | 0:dd2e7831df58 | 65 | |
Joeatsumi | 0:dd2e7831df58 | 66 | |
Joeatsumi | 0:dd2e7831df58 | 67 | |
Joeatsumi | 0:dd2e7831df58 | 68 | }//main |