标签:
EXTI15_10_IRQHandler()begin pulse_time = 0 leader_code_flag = 0 /* 引导码标志位,当引导码出现时,表示一帧数据开始 */ irda_data = 0 /* 数据暂存位 */ while 1 if 红外接收头数据引脚的电平 == 高电平 //获取高电平时间 pulse_time = Get_Pulse_Time() //0.56ms:低电平0 if pulse_time > 0.2ms and pulse_time < 1ms irda_data = 0 //1.68ms:高电平1 else if pulse_time > 1ms and pulse_time < 2ms irda_data = 1 //4.5ms:前导位 else if pulse_time > 4ms and pulse_time < 4.5ms leader_code_flag = 1 //在第一次中断中完成 if leader_code_flag == 1 frame_data <<= 1 frame_data += irda_data frame_cnt = 0 清除中断标志end
标签:
原文地址:http://www.cnblogs.com/cposture/p/4321293.html