remote interrupt
Dependencies: RemoteIR
main.cpp@0:a1d28d3f6f62, 2020-07-13 (annotated)
- Committer:
- faker_71
- Date:
- Mon Jul 13 04:49:33 2020 +0000
- Revision:
- 0:a1d28d3f6f62
remote
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
faker_71 | 0:a1d28d3f6f62 | 1 | #include "mbed.h" |
faker_71 | 0:a1d28d3f6f62 | 2 | #include "ReceiverIR.h" |
faker_71 | 0:a1d28d3f6f62 | 3 | #include "rtos.h" |
faker_71 | 0:a1d28d3f6f62 | 4 | //#include <stdint.h> |
faker_71 | 0:a1d28d3f6f62 | 5 | |
faker_71 | 0:a1d28d3f6f62 | 6 | ReceiverIR ir_rx(p16); |
faker_71 | 0:a1d28d3f6f62 | 7 | Serial pc(USBTX, USBRX); |
faker_71 | 0:a1d28d3f6f62 | 8 | uint32_t remoter_code; |
faker_71 | 0:a1d28d3f6f62 | 9 | void remoter_thread(void const *argument){ |
faker_71 | 0:a1d28d3f6f62 | 10 | RemoteIR::Format format; |
faker_71 | 0:a1d28d3f6f62 | 11 | //uint8_t buf[32]; |
faker_71 | 0:a1d28d3f6f62 | 12 | uint8_t buf[32]; |
faker_71 | 0:a1d28d3f6f62 | 13 | //uint32_t bitcount; |
faker_71 | 0:a1d28d3f6f62 | 14 | int bitcount; |
faker_71 | 0:a1d28d3f6f62 | 15 | |
faker_71 | 0:a1d28d3f6f62 | 16 | while(1){ |
faker_71 | 0:a1d28d3f6f62 | 17 | // 受信待ち |
faker_71 | 0:a1d28d3f6f62 | 18 | if (ir_rx.getState() == ReceiverIR::Received) { |
faker_71 | 0:a1d28d3f6f62 | 19 | // pc.printf("get ir data\r\n"); |
faker_71 | 0:a1d28d3f6f62 | 20 | // コード受信 |
faker_71 | 0:a1d28d3f6f62 | 21 | //bitcount = ir_rx.getData(&format, buf, sizeof(buf) * 16); |
faker_71 | 0:a1d28d3f6f62 | 22 | remoter_code=0; |
faker_71 | 0:a1d28d3f6f62 | 23 | bitcount = ir_rx.getData(&format, buf, sizeof(buf) * 8); |
faker_71 | 0:a1d28d3f6f62 | 24 | pc.printf("bitcount %d\r\n",bitcount); |
faker_71 | 0:a1d28d3f6f62 | 25 | |
faker_71 | 0:a1d28d3f6f62 | 26 | for(int i=0;i<(bitcount>>3);i++){ |
faker_71 | 0:a1d28d3f6f62 | 27 | pc.printf("16 : %02X \r\n",buf[i]); |
faker_71 | 0:a1d28d3f6f62 | 28 | pc.printf("10 : %d\r\n",buf[i]); |
faker_71 | 0:a1d28d3f6f62 | 29 | remoter_code=remoter_code<<(i > 0 ? 8 : 0); |
faker_71 | 0:a1d28d3f6f62 | 30 | //remoter_code << 2; |
faker_71 | 0:a1d28d3f6f62 | 31 | remoter_code += buf[i]; |
faker_71 | 0:a1d28d3f6f62 | 32 | } |
faker_71 | 0:a1d28d3f6f62 | 33 | pc.printf("remote_code %08X \r\n",remoter_code); |
faker_71 | 0:a1d28d3f6f62 | 34 | pc.printf("\r\n"); |
faker_71 | 0:a1d28d3f6f62 | 35 | } |
faker_71 | 0:a1d28d3f6f62 | 36 | } |
faker_71 | 0:a1d28d3f6f62 | 37 | } |
faker_71 | 0:a1d28d3f6f62 | 38 | int main() { |
faker_71 | 0:a1d28d3f6f62 | 39 | Thread thread_Re(remoter_thread , NULL , osPriorityHigh); |
faker_71 | 0:a1d28d3f6f62 | 40 | // ポートD6を赤外線受信モジュールの接続先に指定 |
faker_71 | 0:a1d28d3f6f62 | 41 | while(true){ |
faker_71 | 0:a1d28d3f6f62 | 42 | Thread::wait(5); |
faker_71 | 0:a1d28d3f6f62 | 43 | } |
faker_71 | 0:a1d28d3f6f62 | 44 | |
faker_71 | 0:a1d28d3f6f62 | 45 | } |