android 模拟IR输出
2014-01-17 18:10
260 查看
#define IR_HEAD0 0 #define IR_HEAD1 1 #define IR_TIME_BASE 2 #define IR_CODE_0 3 #define IR_CODE_1 4 #define IR_CODE_END 5 #define TIMER_9000US 10500 #define TIMER_4500US 5710 #define TIMER_560US 720 #define TIMER_1680US 2135
SendIR(const U16 head, const U16 keycode,const BOOL outreverse) { S8 TranselateBitPos; U8 Ir_trans_sta; int count = 0; U8 head0 = head >> 8; U8 head1 = head &0x00ff; Ir_trans_sta=IR_HEAD0; TranselateBitPos=32; printf("\n yanxi head:%d keycode:%d outreverse:%d",head,keycode,outreverse); while(TranselateBitPos>=0) { switch(Ir_trans_sta) { case IR_HEAD0: Ir_trans_sta= IR_HEAD1; for(count=TIMER_9000US;count>0;count--) SetGpioDeviceStatus(LED_WORK,!outreverse); break; case IR_HEAD1: Ir_trans_sta= IR_TIME_BASE; for(count=TIMER_4500US;count>0;count--) SetGpioDeviceStatus(LED_WORK,outreverse); break; case IR_TIME_BASE: if(TranselateBitPos>24) { if( ((head0>>(32-TranselateBitPos)) && 0x1) == 0x1 ) Ir_trans_sta= IR_CODE_1; else Ir_trans_sta= IR_CODE_0; } else if(TranselateBitPos>16) { if( ((head1>>(24-TranselateBitPos)) && 0x1) == 0x1 ) Ir_trans_sta= IR_CODE_1; else Ir_trans_sta= IR_CODE_0; } else if(TranselateBitPos>8) { if( ((keycode>>(16-TranselateBitPos)) && 0x1) == 0x1 ) Ir_trans_sta= IR_CODE_1; else Ir_trans_sta= IR_CODE_0; } else if(TranselateBitPos>0) { if( ((keycode>>(8-TranselateBitPos)) && 0x1) == 0x1 ) Ir_trans_sta= IR_CODE_0; else Ir_trans_sta= IR_CODE_1; } else { Ir_trans_sta= IR_CODE_END; } for(count=TIMER_560US;count>0;count--) SetGpioDeviceStatus(LED_WORK,!outreverse); break; case IR_CODE_0: Ir_trans_sta= IR_TIME_BASE; for(count=TIMER_560US;count>0;count--) SetGpioDeviceStatus(LED_WORK,outreverse); TranselateBitPos--; break; case IR_CODE_1: Ir_trans_sta= IR_TIME_BASE; for(count=TIMER_1680US;count>0;count--) SetGpioDeviceStatus(LED_WORK,outreverse); TranselateBitPos--; break; case IR_CODE_END: Ir_trans_sta= IR_HEAD0; SetGpioDeviceStatus(LED_WORK,outreverse); TranselateBitPos=-1;//force to exit. break; default:break; } } }
相关文章推荐
- android 模拟IR(续三)---应用
- android 模拟IR(续四)---问题总结
- android 模拟IR(续一)---内核
- Android listview局部刷新和模拟应用下载(zhu)
- adb logcat命令查看并过滤android输出log
- Android开发中模拟Home键操作和关闭手机软键盘
- 谈Android模拟点击的价值和实现
- android 模拟真书翻页效果的博客
- Android 打印输出16进制数据
- Android 模拟强制下线功能
- 模拟摄像头解码模块最新测试 TVP5150模块 FPGA+SDRAM+TVP5150+VGA 实现PAL AV输入 VGA视频输出
- Java简单模拟Android中Handler-Message机制
- Android数据存储之JSON数据解析(输出部分)
- android的socket客户端在模拟上运行完美,是手机上不能连接上socket
- android学习——HttpClient 操作 模拟 http 操作
- 用C++使用Android Log API输出日志
- Android Activity 生命周期 跟踪完全程序。有日志输出的
- Android 【真机】与【模拟器】触摸屏事件的模拟差异分析
- Android模拟 HTTP multipart/form-data 请求协议信息实现图片上传