![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
A test script for testing a generic IR remote on STM32 NUCLEO
main.cpp@3:29915623fbb0, 2017-07-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |