开始先把定时器和外部中断初始化设置好,时钟和中断也是。外部中断配置为边沿触发,就是按键按下说产生的边沿信号(上升沿或下降沿),在外部中断函数里面一个写清零定时器并使能计时,另一个里面写读取计时值,并显示计时数据,就好了。
其实是个很简单的程序,楼主基础不够牢实,需要多了解学习一下单片机的工作原理等知识。
上述是我提供的思路,写出完整工程代码需要有些基础才行,不过,这个小功能很适合初学者练习。
硬件部分:轮毂固定磁铁车轮圈安装霍尔传感器,经整形和电平匹配后驳接stm32任意定时器输入引脚。软件部分:将定时器配置成测周模式,设置slave模式当捕捉发生后reset counter,同时使能捕捉和计数溢出中断,当捕捉中断发生时取得周期T,用轮胎直径除以T就是速度,当溢出中断发生时证明速度很低或停止。关键:计算计时器分频,最好状态是在最快时速时霍尔传感每输出一个脉冲计时20个ticks左右。编码器计算设定:
1、所需分辨率:测量轮:周长200mm,精度0.1mm 分辨率R=周长/精度=2000P/R
2、所需响应频率:速度=1000rpm,所需分辨率3600I/U(分辨率)响应频率Fmax=(速度*分辨率)/60=600KHZ
3、最大响应频率:(最大响应转速rpm)/60*(脉冲数/转)=输出频率HZ
4、最大响应转速:(最大响应频率HZ )/(脉冲数/转)*60=轴的转速rpm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)