A test script for testing a generic IR remote on STM32 NUCLEO

Dependencies:   RemoteIR mbed

Committer:
havebug
Date:
Fri Jul 14 09:59:40 2017 +0000
Revision:
3:29915623fbb0
Parent:
2:35f80e65a141
added indication for continuous pressing of buttons

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
havebug 2:35f80e65a141 6 PwmOut my_pwm1(PB_3);
havebug 2:35f80e65a141 7 PwmOut my_pwm2(PB_5);
havebug 2:35f80e65a141 8
havebug 2:35f80e65a141 9
havebug 0:42764550a2cb 10 ReceiverIR ir_rx(D2);
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 {
havebug 3:29915623fbb0 22 my_pwm1.period_us(200);
havebug 2:35f80e65a141 23 my_pwm1.write(DC);
havebug 2:35f80e65a141 24
havebug 3:29915623fbb0 25 my_pwm2.period_us(200);
havebug 2:35f80e65a141 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];
havebug 3:29915623fbb0 37 pc.printf("\r\nDecoded: %02X ", buf[3]);
havebug 3:29915623fbb0 38 }
havebug 0:42764550a2cb 39
havebug 3:29915623fbb0 40 pc.printf(".");
havebug 0:42764550a2cb 41 myled = !myled;
havebug 2:35f80e65a141 42
havebug 3:29915623fbb0 43 if (decoded==0xE5){
havebug 3:29915623fbb0 44 DC = DC+ 0.01;
havebug 2:35f80e65a141 45 if (DC>1) DC=1;
havebug 2:35f80e65a141 46 }
havebug 3:29915623fbb0 47 if (decoded==0xD4){
havebug 3:29915623fbb0 48 DC = DC- 0.01;
havebug 2:35f80e65a141 49 if (DC<0) DC=0;
havebug 2:35f80e65a141 50 }
havebug 3:29915623fbb0 51 if (decoded==0xC3){
havebug 2:35f80e65a141 52 DC = 0.5;
havebug 2:35f80e65a141 53 }
havebug 2:35f80e65a141 54
havebug 2:35f80e65a141 55 my_pwm1.write(DC);
havebug 2:35f80e65a141 56 my_pwm2.write(DC);
havebug 2:35f80e65a141 57
havebug 0:42764550a2cb 58
havebug 0:42764550a2cb 59 /* DEBUG
havebug 0:42764550a2cb 60 for (int i = 0; i < bitcount; i++) {
havebug 0:42764550a2cb 61 pc.printf("%02X", buf[i]);
havebug 0:42764550a2cb 62 }
havebug 0:42764550a2cb 63 */
havebug 0:42764550a2cb 64
havebug 3:29915623fbb0 65 } else myled=0;
havebug 3:29915623fbb0 66
havebug 0:42764550a2cb 67 }
havebug 0:42764550a2cb 68 }