用C语言怎么写里程表的程序啊
知道方波频率,知道车轮周长,知道车速,怎么写里程表的程序啊。求各位大侠指点。sum=sum+ADC3*www*11/6250; 这个为什么不对啊,变化速度特别快。ADC3是方波的频率。 11/6250是单位换算后得到的。 先看一下你的数据类型 你大概描述一下硬件原理,另外,里程与频率没有关系吧,无非你收到一个方波脉冲,然后加一次周长呗. 楼主同行?做汽车仪表? 不知道,你说的里程表是什么意思?是累计里程计算?知道车速 ,车速乘以汽车运行时间不就是累计里程吗?
知道转速传感器脉冲频率可以根据汽车轮胎直径 传动比等参数,计算出车速。
感觉楼主对这些关系都一头雾水 呵呵,你这样整除车表来估计够玄乎。呵呵 哪用乘来乘去的,收一个脉冲就加一次不就得累计里程。你看一下你那一个脉冲是走几远。然后就累加不是更方便? terencechang 发表于 2012-5-22 09:47 static/image/common/back.gif
楼主同行?做汽车仪表?
是啊,可是编程出了问题 修改不明白了 LM1876 发表于 2012-5-22 09:57 static/image/common/back.gif
哪用乘来乘去的,收一个脉冲就加一次不就得累计里程。你看一下你那一个脉冲是走几远。然后就累加不是更方便 ...
你的意思我明白,可是这程序怎么用C语言写 我不是很明白 能举个例子么 if(Pulse_Pin==1) { b_PulseStatus = 1;}
if(Pulse_Pin==0 && b_PulseStatus==1)
{
b_PulseStatus = 0;//状态转变
m_TotalFlux++;//收到脉冲
}
if (m_TotalFlux>100) //假设一个脉冲1米,计量为0.1公里,那么每100米时里程+1.
{
m_TotalFlux=0;//计数复位
总里程++; //显示时要记得这个是0.1kM单位的
保存();//保存1次,不过这样写的次数太多,一般最好是用电压检测掉电前保存
} 下面这个是STC的低电压保存,
if (PCON & 0x20) //低电压判断
{
PCON &= 0xDF ; //标志位复位
if(old_Mileage != m_Mileage)//如果里程有改动
{
old_Mileage = m_Mileage; //旧里程=最新里程,下次如果里程没有改动时就没必要进入保存
FlashRom_Save(); //保存
}
} 仅供参考:发个刚做的自行车测速、里程计
页:
[1]