微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于外部中断与霍尔传感器的问题,求大神指导下

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

时间:10-02 整理:3721RD 点击:
下面是利用霍尔传感器和外部中断的程序,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++;
}

外部中断测脉冲数,定时器1S定时,算出来的!

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

GL=GL+count/10;
这个是怎么算的

距离和转速的计算是结构和硬件电路设计决定的,软件只是根据设计的参数进行计算而已,这个是计价器的程序,所以GL=GL+count/10;应该是里程的累计,而count/10是结构和硬件设计决定而算出的一个里程,有可能是100米,也可能是200米,要看具体设计

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top