我想使用STC12C5A60S2捕捉红外对管产生的脉冲,红外对管只有三个引脚,分别是电源、地、脉冲输出。
我的想法是直接把两个红外对管的脉冲输出引脚接到单片机的P3.2和P3.3外部中断,然后设置成下降沿触发中断,定义一个全局变量在中断函数里计数,再在其他函数调用这个变量。像下面
void InitInterrupt(void)//这个是设置外部中断触发,总中断在其他地方开启
{
EX0 = 1; //开外部中断INT0
EX1 = 1; //开外部中断INT1
IT0 = 1; //下降沿触发
IT1 = 1; //下降沿触发
}
//********左电机中断***********************
void GetLeftMotorPulse(void) interrupt 0
{
g_uiLeftMotorPulse++; //左电机脉冲计数
return;
}
//********右电机中断***********************
void GetRightMotorPulse(void) interrupt 2
{
g_uiRightMotorPulse++; //右电机脉冲计数
return;
}
不知道我这思路是否可以计算红外对管的脉冲。请各位大虾指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>