yusei sugimoeo / Mbed OS controllerForMbed_test_Re
Committer:
e5119053f6
Date:
Tue Sep 06 06:07:56 2022 +0000
Revision:
2:507b31207449
Parent:
1:ab1c94d6f4fb
Child:
3:59ace4ccc91d
controller

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kikuchi8810 0:4f5b9889cbc4 1 #include "mbed.h"
kikuchi8810 0:4f5b9889cbc4 2 #include "platform/mbed_thread.h"
kikuchi8810 0:4f5b9889cbc4 3 #include "Controller.h"
kikuchi8810 0:4f5b9889cbc4 4
kikuchi8810 0:4f5b9889cbc4 5 #define INT_TIME 0.001
kikuchi8810 0:4f5b9889cbc4 6 #define INT_TIME_MS INT_TIME*1000
kikuchi8810 0:4f5b9889cbc4 7
e5119053f6 2:507b31207449 8 Serial pc(USBTX, USBRX,115200);
e5119053f6 2:507b31207449 9 Controller con(p9,p10,115200); //TXpin, RXpin, baudrateを設定
e5119053f6 2:507b31207449 10 //Controller con(p13,p14,115200); //TXpin, RXpin, baudrateを設定
e5119053f6 2:507b31207449 11 //DigitalOut led_user(LED_USER);
e5119053f6 2:507b31207449 12 //DigitalOut led_red(LED_RED);
e5119053f6 2:507b31207449 13 //DigitalOut pin_emergency(D0); //非常停止信号
kikuchi8810 0:4f5b9889cbc4 14
kikuchi8810 0:4f5b9889cbc4 15 Ticker interrupt;
kikuchi8810 0:4f5b9889cbc4 16 bool flag_10ms = false;
kikuchi8810 0:4f5b9889cbc4 17 bool flag_1s = false;
kikuchi8810 0:4f5b9889cbc4 18
kikuchi8810 0:4f5b9889cbc4 19 void interrupt_func()
kikuchi8810 0:4f5b9889cbc4 20 {
kikuchi8810 0:4f5b9889cbc4 21 static int count_10ms = 0;
kikuchi8810 0:4f5b9889cbc4 22 if(count_10ms++ > (INT_TIME_MS*10 - 1))
kikuchi8810 0:4f5b9889cbc4 23 {
kikuchi8810 0:4f5b9889cbc4 24 flag_10ms = true;
kikuchi8810 0:4f5b9889cbc4 25 count_10ms = 0;
kikuchi8810 0:4f5b9889cbc4 26
kikuchi8810 0:4f5b9889cbc4 27 static int count_1s = 0;
kikuchi8810 0:4f5b9889cbc4 28 if(count_1s++ > (INT_TIME_MS*100 -1))
kikuchi8810 0:4f5b9889cbc4 29 {
kikuchi8810 0:4f5b9889cbc4 30 flag_1s = true;
kikuchi8810 0:4f5b9889cbc4 31 count_1s = 0;
kikuchi8810 0:4f5b9889cbc4 32 }
kikuchi8810 0:4f5b9889cbc4 33 }
kikuchi8810 0:4f5b9889cbc4 34 }
kikuchi8810 0:4f5b9889cbc4 35
kikuchi8810 0:4f5b9889cbc4 36 int main()
kikuchi8810 0:4f5b9889cbc4 37 {
e5119053f6 2:507b31207449 38 //pc.baud(115200);
kikuchi8810 0:4f5b9889cbc4 39
kikuchi8810 0:4f5b9889cbc4 40 /* 第一引数はタイムアウト時間[ms],第二引数はupdate関数の呼び出し周期[ms] */
kikuchi8810 0:4f5b9889cbc4 41 con.init(1000, INT_TIME_MS*10); //init関数を呼び出さなければタイムアウトの処理は行われない(available関数は常にtrueを返す)
kikuchi8810 0:4f5b9889cbc4 42
kikuchi8810 0:4f5b9889cbc4 43 interrupt.attach(&interrupt_func, INT_TIME);
kikuchi8810 0:4f5b9889cbc4 44
kikuchi8810 0:4f5b9889cbc4 45 while(1)
kikuchi8810 0:4f5b9889cbc4 46 {
e5119053f6 2:507b31207449 47 //pc.printf("");
kikuchi8810 0:4f5b9889cbc4 48 if(flag_10ms)
kikuchi8810 0:4f5b9889cbc4 49 {
kikuchi8810 1:ab1c94d6f4fb 50 con.update(); //main関数のflag内で呼び出す.
kikuchi8810 0:4f5b9889cbc4 51 if(con.available())
kikuchi8810 0:4f5b9889cbc4 52 {
kikuchi8810 0:4f5b9889cbc4 53 int buttonState = con.getButtonState();
kikuchi8810 0:4f5b9889cbc4 54 uint8_t joyRx = con.readJoyRXbyte();
kikuchi8810 0:4f5b9889cbc4 55 uint8_t joyRy = con.readJoyRYbyte();
kikuchi8810 0:4f5b9889cbc4 56 uint8_t joyLx = con.readJoyLXbyte();
kikuchi8810 0:4f5b9889cbc4 57 uint8_t joyLy = con.readJoyLYbyte();
kikuchi8810 0:4f5b9889cbc4 58
e5119053f6 2:507b31207449 59 pc.printf("%u\t", buttonState);
e5119053f6 2:507b31207449 60 pc.printf("%u\t", joyRx);
e5119053f6 2:507b31207449 61 pc.printf("%u\t", joyRy);
e5119053f6 2:507b31207449 62 pc.printf("%u\t", joyLx);
e5119053f6 2:507b31207449 63 pc.printf("%u\r\n", joyLy);
kikuchi8810 0:4f5b9889cbc4 64
e5119053f6 2:507b31207449 65 //led_red.write(1);
e5119053f6 2:507b31207449 66 //pin_emergency.write(1); //非常停止を解除する
kikuchi8810 0:4f5b9889cbc4 67 }
kikuchi8810 0:4f5b9889cbc4 68 else
kikuchi8810 0:4f5b9889cbc4 69 {
kikuchi8810 0:4f5b9889cbc4 70 pc.printf("disconnected\r\n");
e5119053f6 2:507b31207449 71 //led_red.write(0);
e5119053f6 2:507b31207449 72 //pin_emergency.write(0); //非常停止を作動させる
kikuchi8810 0:4f5b9889cbc4 73 }
kikuchi8810 0:4f5b9889cbc4 74
kikuchi8810 0:4f5b9889cbc4 75 flag_10ms = false;
kikuchi8810 0:4f5b9889cbc4 76 }
kikuchi8810 0:4f5b9889cbc4 77
kikuchi8810 0:4f5b9889cbc4 78 if(flag_1s)
kikuchi8810 0:4f5b9889cbc4 79 {
e5119053f6 2:507b31207449 80 //led_user.write(!led_user.read());
kikuchi8810 0:4f5b9889cbc4 81 flag_1s = false;
kikuchi8810 0:4f5b9889cbc4 82 }
e5119053f6 2:507b31207449 83 wait_us(1);
e5119053f6 2:507b31207449 84 //thread_sleep_for(1);
kikuchi8810 0:4f5b9889cbc4 85 }
kikuchi8810 0:4f5b9889cbc4 86 }