remote interrupt

Dependencies:   RemoteIR

Committer:
faker_71
Date:
Mon Jul 13 04:49:33 2020 +0000
Revision:
0:a1d28d3f6f62
remote

Who changed what in which revision?

UserRevisionLine numberNew 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 }