不考虑并排的情况下,人的进或出(有连续进,连续出,一出一进,一进一出等情况,我写了一个程序,有连续进,一进一出,一出一进没问题,但连续出的情况就有问题了,求帮忙解决,先谢谢各位了
主要相关程序如下:
while (1) //这是主函数里的
{
if(HW1==1&&HW2==0)
{
// led6=0;
delay_ms(100);
if(HW1==1&&HW2==1)
{
HW1=0; //
// H21=0;
// led6=1;
HW2=0; //
// led7=1;
SendStringByUart3(youren);//发送指令
}
}
else if(HW1==0&&HW2==1)
{
HW1=0;
// led6=1;
HW2=0;
// led7=1;
// H21=1;
}
void INT0_int (void) interrupt INT0_VECTOR //红外对射开关1引起的中断0
{
HW1=1;
}
void INT1_int (void) interrupt INT1_VECTOR //红外对射开关2引起的中断1
{
HW2=1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
好的 期待你的资料分享
这个只是检测有没人的吧?不是人进出的情况
我用得红外对射,被阻挡光线就有信号,我也觉得用状态机最靠谱
算是解决了,用的延时,强行把第一次出门留下1号传感器标志清零了,就是不太严谨,项目到最后一步,出现了其他新问题,就是进门时会引起10秒的警报(用的delay,for循环延时),在这10秒内再次触发传感器(引起外部中断),会造成死机,往后在触发也没反应了,我已经在这10秒延时前关掉外部中断使能了(ex0=0),也还是这样,反而串口中断啥事都没有,好郁闷,请问下这是什么原因?
一周热门 更多>