关于外部中断与霍尔传感器的问题,求大神指导下

2019-07-15 12:11发布

下面是利用霍尔传感器和外部中断的程序,GT=0显示公里数,GT=1显示时间,GL是公里数,用的是A3144霍尔传感器,我想问的是他是怎样测速的,我看不明白,这里外部中断设置为下降沿触发,当我按下电机开关的时候,这时变为
低电平吧,count++,问题来了,他是怎样加到60的?还有加到60后,为什么是GL=GL+count/10?这是出租车计价器的程序,我看到外部中断不懂,不知道他是怎样测速的?只有count++这里对count进行运算,程序其他地方没有的,实物的效果是按下电机开关,就会直接显示里程,它会自动从0逐渐增加,求各位大神指导下小弟,谢谢了!

void Inittimer0(void)
{
    TMOD = 0x01;       
    TH0 = 0x3C;
    TL0 = 0xB0;               
    EA = 1;                 
    ET0 = 1;         
    TR0 = 1;         
        IT0=1;       
        EX0=0;
}

//定时器0中断50ms
void Timer0Interrupt(void) interrupt 1
{
    TH0 = 0x3C;          
    TL0 = 0xB0;   
        m++;
        if(m>=20)  //1秒时间到
        {
                m=0;
                if(count>=60)
                {
                        GT=0;  //公里
                        GL=GL+count/10;
                        count=0;
                }
                else
                {
                        count=0;
                        GT=1;        //时间
                        Time++;         //时间++
                }
        }
}

void EXINT0() interrupt 0
{
        count++;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
boiled_water
2019-07-15 17:47
chenwei6991627 发表于 2017-1-4 12:37
外部中断测脉冲数,定时器1S定时,算出来的!

问一下,我不知道我的想法对不对,是不是定时器定时1s测脉冲数,然后脉冲数转换为距离(公里数),这个转换是由编程员定的,比如说0.1公里=100脉冲,定时1s测的脉冲数就是速度,然后每次1s过去后脉冲清0,累计所有脉冲就是一个时间段汽车走过的距离,请帮看看我的想法对不对,并给予我指导,谢谢!

一周热门 更多>