This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.

Dependencies:   RemoteIR

Committer:
sb8718
Date:
Tue May 19 07:58:35 2020 +0000
Revision:
134:139f37fecf3d
Parent:
131:8fb226cc407c
Child:
135:03997cc206a4
temp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sb8718 109:5274dd9bebe1 1 #include "mbed.h"
sb8718 131:8fb226cc407c 2 #include "ReceiverIR.h"
sb8718 128:29911670c7fd 3
sb8718 131:8fb226cc407c 4 Serial pc(PA_2, PA_3, 115200); //IR receiver D4
sb8718 131:8fb226cc407c 5 ReceiverIR ir_rx(D3);
sb8718 130:d19783810c05 6
sb8718 131:8fb226cc407c 7 void display_data(uint8_t *buf, int bitlength) {
sb8718 131:8fb226cc407c 8 const int n = bitlength / 8 + (((bitlength % 8) != 0) ? 1 : 0);
sb8718 131:8fb226cc407c 9 for (int i = 0; i < n; i++) {
sb8718 131:8fb226cc407c 10 pc.printf("%02X", buf[i]);
sb8718 131:8fb226cc407c 11 }
sb8718 131:8fb226cc407c 12 for (int i = 0; i < 8 - n; i++) {
sb8718 131:8fb226cc407c 13 pc.printf("--");
sb8718 131:8fb226cc407c 14 }
sb8718 131:8fb226cc407c 15 }
sb8718 131:8fb226cc407c 16 int receive(RemoteIR::Format *format, uint8_t *buf, int bufsiz, int timeout = 100) {
sb8718 131:8fb226cc407c 17 int cnt = 0;
sb8718 131:8fb226cc407c 18 while (ir_rx.getState() != ReceiverIR::Received) {
sb8718 131:8fb226cc407c 19 cnt++;
sb8718 131:8fb226cc407c 20 if (timeout < cnt) {
sb8718 131:8fb226cc407c 21 return -1;
sb8718 130:d19783810c05 22 }
sb8718 131:8fb226cc407c 23 }
sb8718 131:8fb226cc407c 24 return ir_rx.getData(format, buf, bufsiz * 8);
sb8718 130:d19783810c05 25 }
sb8718 131:8fb226cc407c 26
sb8718 131:8fb226cc407c 27
sb8718 129:53f2df333d65 28 int main() {
sb8718 131:8fb226cc407c 29
sb8718 131:8fb226cc407c 30 pc.printf("\r\n\r\n\r\n\r\nStart!!\r\n");
sb8718 131:8fb226cc407c 31
sb8718 131:8fb226cc407c 32 while (1) {
sb8718 131:8fb226cc407c 33 RemoteIR::Format format;
sb8718 131:8fb226cc407c 34 uint8_t buf[32];
sb8718 131:8fb226cc407c 35 int bitcount;
sb8718 134:139f37fecf3d 36 // if (ir_rx.getState() == ReceiverIR::Received) {
sb8718 134:139f37fecf3d 37 // bitcount = ir_rx.getData(&format, buf, sizeof(buf));
sb8718 134:139f37fecf3d 38 // }
sb8718 130:d19783810c05 39
sb8718 131:8fb226cc407c 40 bitcount = receive(&format, buf, sizeof(buf));
sb8718 131:8fb226cc407c 41 if (bitcount < 0) {
sb8718 131:8fb226cc407c 42 continue;
sb8718 131:8fb226cc407c 43 }
sb8718 131:8fb226cc407c 44
sb8718 131:8fb226cc407c 45 display_data(buf, bitcount);
sb8718 131:8fb226cc407c 46
sb8718 131:8fb226cc407c 47
sb8718 118:88f30fadf08f 48 }
sb8718 128:29911670c7fd 49 }
sb8718 128:29911670c7fd 50
sb8718 128:29911670c7fd 51