hgu / Mbed OS final

Dependencies:   Motordriver PixelArray RemoteIR

Committer:
yangyejin
Date:
Sun Jun 16 16:40:51 2019 +0000
Revision:
94:9050bb458b00
alphabot

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangyejin 94:9050bb458b00 1 /* EXAMPLE */
yangyejin 94:9050bb458b00 2 #include "mbed.h"
yangyejin 94:9050bb458b00 3 #include "HCSR04.h"
yangyejin 94:9050bb458b00 4
yangyejin 94:9050bb458b00 5 //D12 TRIGGER D11 ECHO
yangyejin 94:9050bb458b00 6
yangyejin 94:9050bb458b00 7 RawSerial pc(SERIAL_TX, SERIAL_RX,115200);
yangyejin 94:9050bb458b00 8 HCSR04 sensor(D3, D2,pc,0.5);
yangyejin 94:9050bb458b00 9 Ticker repeat;
yangyejin 94:9050bb458b00 10
yangyejin 94:9050bb458b00 11 uint8_t rx_buffer[10];
yangyejin 94:9050bb458b00 12 int index=0;
yangyejin 94:9050bb458b00 13 volatile int flag;
yangyejin 94:9050bb458b00 14 void rx_ISR(void)
yangyejin 94:9050bb458b00 15 {
yangyejin 94:9050bb458b00 16 char ch;
yangyejin 94:9050bb458b00 17 ch = pc.getc();
yangyejin 94:9050bb458b00 18 pc.putc(ch);
yangyejin 94:9050bb458b00 19 rx_buffer[index++]=ch;
yangyejin 94:9050bb458b00 20 if(ch==0x0D)
yangyejin 94:9050bb458b00 21 {
yangyejin 94:9050bb458b00 22 pc.putc(0x0A);
yangyejin 94:9050bb458b00 23 rx_buffer[--index]='\0';
yangyejin 94:9050bb458b00 24 index=0;
yangyejin 94:9050bb458b00 25 flag=1;
yangyejin 94:9050bb458b00 26 }
yangyejin 94:9050bb458b00 27 }
yangyejin 94:9050bb458b00 28
yangyejin 94:9050bb458b00 29
yangyejin 94:9050bb458b00 30
yangyejin 94:9050bb458b00 31
yangyejin 94:9050bb458b00 32
yangyejin 94:9050bb458b00 33 int main() {
yangyejin 94:9050bb458b00 34 //pc.printf("select mode (repeat / once): ");
yangyejin 94:9050bb458b00 35 pc.attach(&rx_ISR);
yangyejin 94:9050bb458b00 36 while(1)
yangyejin 94:9050bb458b00 37 {
yangyejin 94:9050bb458b00 38 pc.printf("[0 : 10 times / 1: 1 times ] : ");
yangyejin 94:9050bb458b00 39 flag = 0;
yangyejin 94:9050bb458b00 40 while(flag !=1);
yangyejin 94:9050bb458b00 41
yangyejin 94:9050bb458b00 42 if(strcmp((const char*)rx_buffer,"0")==0)
yangyejin 94:9050bb458b00 43 {
yangyejin 94:9050bb458b00 44 sensor.setMode(true);
yangyejin 94:9050bb458b00 45 repeat.attach(callback(&sensor,&HCSR04::distance),0.5);
yangyejin 94:9050bb458b00 46 while(!(sensor.getStatus()==10));
yangyejin 94:9050bb458b00 47
yangyejin 94:9050bb458b00 48 repeat.detach();
yangyejin 94:9050bb458b00 49 sensor.setMode(false);
yangyejin 94:9050bb458b00 50 sensor.clearStatus();
yangyejin 94:9050bb458b00 51 }
yangyejin 94:9050bb458b00 52 //pc.printf("end1?");
yangyejin 94:9050bb458b00 53 if(strcmp((const char*)rx_buffer,"1")==0)
yangyejin 94:9050bb458b00 54 {
yangyejin 94:9050bb458b00 55 sensor.setMode(false);
yangyejin 94:9050bb458b00 56 // printf("Measure : 'M', Reselect : 'R'\r\n");
yangyejin 94:9050bb458b00 57 // while(!(strcmp((const char*)rx_buffer,"M")==0 | strcmp((const char*)rx_buffer,"R")==0));
yangyejin 94:9050bb458b00 58 // if(strcmp((const char*)rx_buffer,"R")==0)
yangyejin 94:9050bb458b00 59 // {}
yangyejin 94:9050bb458b00 60 // if(strcmp((const char*)rx_buffer,"M")==0)
yangyejin 94:9050bb458b00 61 // {
yangyejin 94:9050bb458b00 62 sensor.distance();
yangyejin 94:9050bb458b00 63 sensor.clearStatus();
yangyejin 94:9050bb458b00 64 // }
yangyejin 94:9050bb458b00 65 }
yangyejin 94:9050bb458b00 66 }
yangyejin 94:9050bb458b00 67 }