Seongbin Lim
/
sb_first_project
This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.
main.cpp@134:139f37fecf3d, 2020-05-19 (annotated)
- 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?
User | Revision | Line number | New 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 |