使用红外接收库的一个demo code

Dependencies:   mbed

Fork of IR_remote by Armando Casalino

Committer:
adaphoto
Date:
Thu Jun 21 01:20:35 2018 +0000
Revision:
4:326b8df3add2
Parent:
3:29915623fbb0
?????????demo code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
havebug 0:42764550a2cb 1 #include "mbed.h"
havebug 0:42764550a2cb 2 #include "ReceiverIR.h"
havebug 2:35f80e65a141 3
havebug 2:35f80e65a141 4 DigitalOut my_led(LED1);
havebug 2:35f80e65a141 5
adaphoto 4:326b8df3add2 6 //PwmOut my_pwm1(PB_3);
adaphoto 4:326b8df3add2 7 //PwmOut my_pwm2(PB_5);
havebug 2:35f80e65a141 8
havebug 2:35f80e65a141 9
adaphoto 4:326b8df3add2 10 ReceiverIR ir_rx(PA_12);
havebug 0:42764550a2cb 11
havebug 0:42764550a2cb 12 Serial pc(SERIAL_TX, SERIAL_RX);
havebug 0:42764550a2cb 13 DigitalOut myled(LED1);
havebug 0:42764550a2cb 14
havebug 0:42764550a2cb 15 RemoteIR::Format format;
havebug 0:42764550a2cb 16 uint8_t buf[32];
havebug 3:29915623fbb0 17 int bitcount, decoded;
havebug 3:29915623fbb0 18 double DC=0.5;
havebug 0:42764550a2cb 19
havebug 0:42764550a2cb 20 int main()
havebug 0:42764550a2cb 21 {
adaphoto 4:326b8df3add2 22 //my_pwm1.period_us(200);
adaphoto 4:326b8df3add2 23 //my_pwm1.write(DC);
havebug 2:35f80e65a141 24
adaphoto 4:326b8df3add2 25 //my_pwm2.period_us(200);
adaphoto 4:326b8df3add2 26 //my_pwm2.write(DC);
havebug 3:29915623fbb0 27
havebug 0:42764550a2cb 28
havebug 0:42764550a2cb 29 pc.printf("Hello World !\r\n");
havebug 0:42764550a2cb 30 while(1) {
havebug 0:42764550a2cb 31
havebug 0:42764550a2cb 32 if (ir_rx.getState() == ReceiverIR::Received) {
havebug 0:42764550a2cb 33 bitcount = ir_rx.getData(&format, buf, sizeof(buf) * 8);
havebug 3:29915623fbb0 34 myled=1;
havebug 3:29915623fbb0 35 if (bitcount>0) {
havebug 3:29915623fbb0 36 decoded=buf[3];
adaphoto 4:326b8df3add2 37 pc.printf("\r\nDecoded: %x ", buf[0]);
adaphoto 4:326b8df3add2 38 pc.printf("\r\nDecoded: %x ", buf[1]);
adaphoto 4:326b8df3add2 39 pc.printf("\r\nDecoded: %x ", buf[2]);
adaphoto 4:326b8df3add2 40 pc.printf("\r\nDecoded: %x ", buf[3]);
havebug 3:29915623fbb0 41 }
havebug 0:42764550a2cb 42
havebug 3:29915623fbb0 43 pc.printf(".");
havebug 0:42764550a2cb 44 myled = !myled;
havebug 2:35f80e65a141 45
adaphoto 4:326b8df3add2 46 //if (decoded==0xE5){
adaphoto 4:326b8df3add2 47 // DC = DC+ 0.01;
adaphoto 4:326b8df3add2 48 // if (DC>1) DC=1;
adaphoto 4:326b8df3add2 49 //}
adaphoto 4:326b8df3add2 50 //if (decoded==0xD4){
adaphoto 4:326b8df3add2 51 // DC = DC- 0.01;
adaphoto 4:326b8df3add2 52 // if (DC<0) DC=0;
adaphoto 4:326b8df3add2 53 //}
adaphoto 4:326b8df3add2 54 //if (decoded==0xC3){
adaphoto 4:326b8df3add2 55 // DC = 0.5;
adaphoto 4:326b8df3add2 56 //}
havebug 2:35f80e65a141 57
adaphoto 4:326b8df3add2 58 // my_pwm1.write(DC);
adaphoto 4:326b8df3add2 59 // my_pwm2.write(DC);
havebug 2:35f80e65a141 60
havebug 0:42764550a2cb 61
havebug 0:42764550a2cb 62 /* DEBUG
havebug 0:42764550a2cb 63 for (int i = 0; i < bitcount; i++) {
havebug 0:42764550a2cb 64 pc.printf("%02X", buf[i]);
havebug 0:42764550a2cb 65 }
havebug 0:42764550a2cb 66 */
havebug 0:42764550a2cb 67
havebug 3:29915623fbb0 68 } else myled=0;
havebug 3:29915623fbb0 69
havebug 0:42764550a2cb 70 }
havebug 0:42764550a2cb 71 }