TP1
Dependencies: mbed
main.cpp
- Committer:
- AntoineDeb
- Date:
- 2020-12-09
- Revision:
- 9:48e3f6385bff
- Parent:
- 8:51527660b735
- Child:
- 10:4276eb0b8d4c
File content as of revision 9:48e3f6385bff:
#include "mbed.h" #include "m3pi.h" DigitalOut led1(LED1); DigitalOut led2(LED2); m3pi m3pi; Serial pc(USBTX,USBRX); LocalFileSystem local("local"); void readBattery() { char s[500]; char* s2 = "Battery:%f V\n"; sprintf(s, s2, m3pi.battery()); for (int i=0; i<strlen(s); i++) { pc.putc(s[i]); } pc.printf("\r"); } void readSensors() { char s[500]; char* s2 = "Sensors:(%u,%u,%u,%u,%u) \n"; unsigned short val[5]; m3pi.calibrated_sensors(val); sprintf(s, s2, val[0],val[1],val[2],val[3],val[4]); for (int i=0; i<strlen(s); i++) { pc.putc(s[i]); } pc.printf("\r"); } //__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; } void writetofile() { FILE *fp = fopen("/local/out.txt", "w"); // Open "out.txt" on the local file system for writing while(word!='x') { switch(word) { case 'z': fprintf(fp,"zz\n");break; case 'q': fprintf(fp,"qq\n");break; case 's': fprintf(fp,"ss\n");break; case 'd': fprintf(fp,"dd\n");break; } wait(0.5); } fclose(fp); } void openfile() { char chaine[2]; FILE *fp = fopen("/local/out.txt", "r"); if (fp!=NULL) { while (!feof(fp)) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL) { fgets(chaine,2,fp); switch (chaine[0]) { case 'z': m3pi.forward(0.5); wait(0.5); m3pi.stop(); break; case 's': m3pi.backward(0.5); wait(0.5); m3pi.stop(); break; case 'q': m3pi.left(0.5); wait(0.5); m3pi.stop(); break; case 'd': m3pi.right(0.5); wait(0.5); m3pi.stop(); break; } } } fclose(fp); } int main() { m3pi.cls(); pc.printf("Bonjour \n"); //USBINTERRUPT.rise(&GetKeyboard);z pc.attach(&GetKeyboard, Serial::RxIrq); //flag=0; while(1) { if(flag == 1) { pc.printf("in flag\n"); //word = pc.getc(); pc.printf("word = %c", word); switch(word) { case 'z': m3pi.forward(0.5); wait(0.5); m3pi.stop(); break; case 'q': m3pi.left(0.5); wait(0.5); m3pi.stop(); break; case 's': m3pi.backward(0.5); wait(0.5); m3pi.stop(); break; case 'd': m3pi.right(0.5); wait(0.5); m3pi.stop(); break; case 'b': readBattery(); break; case 'c': readSensors(); break; case 'p': writetofile(); break; case 'r': openfile(); } flag=0; } else {} } }