Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:7c39876eb334, 2014-08-09 (annotated)
- Committer:
- yuki
- Date:
- Sat Aug 09 07:24:12 2014 +0000
- Revision:
- 0:7c39876eb334
- Child:
- 1:4e6dc3e5ab7c
Main Source
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yuki | 0:7c39876eb334 | 1 | #include "mbed.h" |
| yuki | 0:7c39876eb334 | 2 | #include "ReceiverIR.h" |
| yuki | 0:7c39876eb334 | 3 | |
| yuki | 0:7c39876eb334 | 4 | DigitalOut myled1(dp28); // MARY GREEN LED |
| yuki | 0:7c39876eb334 | 5 | DigitalOut myled2(dp14); // MARY BLUE LED |
| yuki | 0:7c39876eb334 | 6 | DigitalOut myled3(xp12); |
| yuki | 0:7c39876eb334 | 7 | ReceiverIR ir_rx(dp17); |
| yuki | 0:7c39876eb334 | 8 | //TX dp16 = USBTX RX dp15 = USBRX |
| yuki | 0:7c39876eb334 | 9 | Serial pc(USBTX, USBRX); |
| yuki | 0:7c39876eb334 | 10 | |
| yuki | 0:7c39876eb334 | 11 | int receive(RemoteIR::Format *format, uint8_t *buf, int bufsiz, int timeout = 100) { |
| yuki | 0:7c39876eb334 | 12 | int cnt = 0; |
| yuki | 0:7c39876eb334 | 13 | while (ir_rx.getState() != ReceiverIR::Received) { |
| yuki | 0:7c39876eb334 | 14 | cnt++; |
| yuki | 0:7c39876eb334 | 15 | if (timeout < cnt) { |
| yuki | 0:7c39876eb334 | 16 | return -1; |
| yuki | 0:7c39876eb334 | 17 | } |
| yuki | 0:7c39876eb334 | 18 | } |
| yuki | 0:7c39876eb334 | 19 | return ir_rx.getData(format, buf, bufsiz * 8); |
| yuki | 0:7c39876eb334 | 20 | } |
| yuki | 0:7c39876eb334 | 21 | |
| yuki | 0:7c39876eb334 | 22 | int main() { |
| yuki | 0:7c39876eb334 | 23 | pc.baud(9600); |
| yuki | 0:7c39876eb334 | 24 | RemoteIR::Format format; |
| yuki | 0:7c39876eb334 | 25 | uint8_t buf[64]; |
| yuki | 0:7c39876eb334 | 26 | int bufLength = 0; |
| yuki | 0:7c39876eb334 | 27 | myled1 = myled2 = myled3 = 1; |
| yuki | 0:7c39876eb334 | 28 | while(1) { |
| yuki | 0:7c39876eb334 | 29 | myled1 = 0; |
| yuki | 0:7c39876eb334 | 30 | memset(buf, 0x00, sizeof(buf)); |
| yuki | 0:7c39876eb334 | 31 | bufLength = receive(&format, buf, sizeof(buf)); |
| yuki | 0:7c39876eb334 | 32 | if(bufLength < 0) continue; |
| yuki | 0:7c39876eb334 | 33 | myled1 = 1; |
| yuki | 0:7c39876eb334 | 34 | myled2 = 0; |
| yuki | 0:7c39876eb334 | 35 | const int n = bufLength / 8 + (((bufLength % 8) != 0) ? 1 : 0); |
| yuki | 0:7c39876eb334 | 36 | for (int i = 0; i < n; i++) { |
| yuki | 0:7c39876eb334 | 37 | pc.printf("%02X", buf[i]); |
| yuki | 0:7c39876eb334 | 38 | } |
| yuki | 0:7c39876eb334 | 39 | pc.printf(" %d ", bufLength); |
| yuki | 0:7c39876eb334 | 40 | switch (format) { |
| yuki | 0:7c39876eb334 | 41 | case RemoteIR::UNKNOWN: |
| yuki | 0:7c39876eb334 | 42 | pc.printf("UNKNOWN"); |
| yuki | 0:7c39876eb334 | 43 | myled2 = 1; |
| yuki | 0:7c39876eb334 | 44 | myled3 = 0; |
| yuki | 0:7c39876eb334 | 45 | break; |
| yuki | 0:7c39876eb334 | 46 | case RemoteIR::NEC: |
| yuki | 0:7c39876eb334 | 47 | pc.printf("NEC"); |
| yuki | 0:7c39876eb334 | 48 | break; |
| yuki | 0:7c39876eb334 | 49 | case RemoteIR::NEC_REPEAT: |
| yuki | 0:7c39876eb334 | 50 | pc.printf("NEC(R)"); |
| yuki | 0:7c39876eb334 | 51 | break; |
| yuki | 0:7c39876eb334 | 52 | case RemoteIR::AEHA: |
| yuki | 0:7c39876eb334 | 53 | pc.printf("AEHA"); |
| yuki | 0:7c39876eb334 | 54 | break; |
| yuki | 0:7c39876eb334 | 55 | case RemoteIR::AEHA_REPEAT: |
| yuki | 0:7c39876eb334 | 56 | pc.printf("AEHA(R)"); |
| yuki | 0:7c39876eb334 | 57 | break; |
| yuki | 0:7c39876eb334 | 58 | case RemoteIR::SONY: |
| yuki | 0:7c39876eb334 | 59 | pc.printf("SONY"); |
| yuki | 0:7c39876eb334 | 60 | break; |
| yuki | 0:7c39876eb334 | 61 | } |
| yuki | 0:7c39876eb334 | 62 | pc.printf(" OK\r\n"); |
| yuki | 0:7c39876eb334 | 63 | wait_ms(450); |
| yuki | 0:7c39876eb334 | 64 | myled2 = 1; |
| yuki | 0:7c39876eb334 | 65 | myled3 = 1; |
| yuki | 0:7c39876eb334 | 66 | wait_ms(150); |
| yuki | 0:7c39876eb334 | 67 | } |
| yuki | 0:7c39876eb334 | 68 | } |