yamanouti_purogram_zyouhannsinn
Dependencies: mbed MotorDrivers
main.cpp
- Committer:
- shibazakiwataru
- Date:
- 2020-10-11
- Revision:
- 1:2e084048b5f9
- Parent:
- 0:a6f29afbd285
File content as of revision 1:2e084048b5f9:
#include "mbed.h" #include "string" #include "Sabertooth_Serial.h" #define INT_TIME 0.02 #define ADRS 133 #define UP 0b00000001 #define DOWN 0b00000010 #define HANDR 0b00000100 #define HANDL 0b00001000 #define OTHER 0b00010000 Ticker timer; RawSerial pc(USBTX,USBRX,115200); RawSerial Master(p28, p27, 115200); SaberSerial MD(115200, p13, p14); DigitalOut hund_fetR(p15); DigitalOut hund_fetL(p16); DigitalIn limit(p25); string Master_recv = ""; char buttons = 0b00000000, pre_buttons = 0b00000000; void recv_interrupt(){ char recv_c = Master.getc(); if (recv_c == '\n'){ buttons = Master_recv[0]; Master_recv = ""; } else{ Master_recv += recv_c; if(Master_recv.size() == 2) Master_recv = ""; } } void timer_interrupt(){ int saber_speed = 0, saber_def = 0; bool hand_R = buttons & HANDR; bool hand_L = buttons & HANDL; hund_fetR.write(hand_R); hund_fetL.write(hand_L); if(buttons & UP){ saber_speed = 10; saber_def = 4; } else if(buttons & OTHER){ saber_speed = 50; saber_def = 4; } else if(buttons & DOWN){ saber_speed = 10; saber_def = 5; } else { saber_speed = 0; saber_def = 4; } if(limit.read() && saber_def == 4) saber_speed = 0; MD.Serial(ADRS,saber_def,saber_speed); pc.printf("%d,%d\n",hand_R,hand_L); pre_buttons = buttons; } int main() { hund_fetR = 0; hund_fetL = 0; timer.attach(&timer_interrupt,INT_TIME); Master.attach(&recv_interrupt, RawSerial::RxIrq); while(true) {} }