yasuyuki onodera
/
mbed_IR
IR receiver for TG-LPC11U35-501
Diff: main.cpp
- Revision:
- 2:31c91b18bba9
- Parent:
- 0:8ae7470a57ef
- Child:
- 3:7ecc01d39b46
--- a/main.cpp Thu Jun 26 13:58:50 2014 +0000 +++ b/main.cpp Fri Sep 25 17:13:57 2015 +0000 @@ -5,7 +5,7 @@ // LPC11U35 flash=64KB, ADC=10bits // Nucleo F401RE flash=512KB, ADC=12bits // -// (C)Copyright 2014 All rights reserved by Y.Onodera +// (C)Copyright 2014-2015 All rights reserved by Y.Onodera // http://einstlab.web.fc2.com //********************** #include "mbed.h" @@ -14,9 +14,9 @@ //#pragma O0 //#pragma O1 -//#pragma O2 // default -//#pragma O3 -//#pragma Otime +//#pragma O2 +//#pragma O3 // default +//#pragma Otime // default //#pragma Ospace @@ -41,26 +41,27 @@ #endif AQM0802 lcd(i2c); -IR ir(P0_12); +IR ir(P0_12,P0_13); InterruptIn button(P0_12); -void flip() +void irInterrupt() { led1=!led1; - button.disable_irq(); - ir.GetIR(); + button.disable_irq(); // !!! not work !!! + ir.getIR(); button.enable_irq(); // To do something, code here } + int main() { char msg[10]; char i; - button.fall(&flip); + button.fall(&irInterrupt); button.mode(PullUp); sprintf(msg, "%d", SystemCoreClock ); @@ -73,20 +74,37 @@ lcd.locate(0,0); sprintf(msg,"%02X",ir.bits); // bits lcd.print(msg); - sprintf(msg,"%02X",ir.mode); // 1:NEC, 2:STD + sprintf(msg,"%02X",ir.mode); // 1:NEC, 2:AEHA, 3:SONY lcd.print(msg); for(i=0;i<2;i++){ +// for(i=5;i<7;i++){ sprintf(msg,"%02X",ir.buf[i]); // data lcd.print(msg); } lcd.locate(0,1); for(i=2;i<6;i++){ +// for(i=11;i<15;i++){ sprintf(msg,"%02X",ir.buf[i]); // data lcd.print(msg); } wait(1); + + + // Echo back + button.fall(NULL); // disable Interrupt + // set parameter to send out + // ir.mode is 1:NEC, 2:AEHA or 3:SONY + // ir.bits is number to send out less than IR_LIMITS x8 + // ir.buf[] are bytes buffer + ir.setIR(); + button.fall(&irInterrupt); // enable Interrupt + wait(1); + + } } + +