TP1
Dependencies: mbed
main.cpp
- Committer:
- AntoineDeb
- Date:
- 2020-12-09
- Revision:
- 8:51527660b735
- Parent:
- 7:a1c1cb3a5d42
- Child:
- 9:48e3f6385bff
File content as of revision 8:51527660b735:
#include "mbed.h" #include "m3pi.h" DigitalOut led1(LED1); DigitalOut led2(LED2); m3pi m3pi; Serial pc(USBTX,USBRX); //__enable_irq(); unsigned short flag = 0; int word; //InterruptIn USBINTERRUPT(USBRX); void GetKeyboard() { //pc.printf("Keyboard Interrupt \n"); flag = 1; if(pc.readable()) word = pc.getc(); else pc.printf("no readable\n"); return; } int main() { m3pi.cls(); pc.printf("Bonjour \n"); float speed = 0.1, battery = -1, position; //USBINTERRUPT.rise(&GetKeyboard);z pc.attach(&GetKeyboard, Serial::RxIrq); while(1) { //printf("flag = %d ", flag); //if(word >= 'a' && word <= 'z') {word++; pc.printf(&word); pc.printf("\n");} if(speed > 1) speed = 1; if(speed < -1) speed = -1; if(flag == 1) { pc.printf("in flag\n"); //word = pc.getc(); pc.printf("word = %c", word); switch(word) { // mouvement robots case 'z': m3pi.forward(speed); break; case 'q': m3pi.left(speed/2); break; case 's': m3pi.backward(speed); break; case 'd': m3pi.right(speed/2); break; case ' ': speed = 0; break; //accelerer / freiner case '+': speed+= 0.1; break; case '-': speed-= 0.1; break; case '0': m3pi.stop(); break; //infos case 'p': position = m3pi.line_position(); pc.printf("position = %f \n", position); break; case 'b': battery = m3pi.battery(); pc.printf("battery = %f \n", (battery/4.8)*100); break; default: pc.printf("default case \n"); break; } flag = 0; } else {} } }