智能车制作

标题: PWM模块(不级联&级联)与TIM模块(输入捕捉&输出比较)的小例程(含注释) [打印本页]

作者: 丁香花    时间: 2012-5-11 18:08
标题: PWM模块(不级联&级联)与TIM模块(输入捕捉&输出比较)的小例程(含注释)
本帖最后由 丁香花 于 2012-5-11 18:10 编辑

    通过I/O模块、PWM模块大家可以接收赛道信息、控制舵机打角、电机速度了。做完这些,大家可以研究一下定时器和周期性中断这块了。这块既能将前面说的模块提升一下(因为这里涉及定时中断,大家可以考虑一下多长时间做一次控制?),也可以将此应用到测速中。
    测速实际上就是对单位时间内的信号源(由光电编码器或光电码盘返回)产生的脉冲进行计数(上升沿/下降沿),这里先上传输入捕捉和输出比较两个例程。
    输入捕捉的原理:
    这里用到十字交叉法(输入信号频率/系统时钟频率=1个脉冲/系统时钟脉冲个数)。系统时钟计数器对系统时钟信号不断记录,测量输入信号两个上升沿出现之间的时间内系统时钟计数器计数差值被总线时钟除,所得到的商即为输入信号频率。
    输出比较原理:
    测量信号频率需要1s的采样(对信号的上升沿或下降沿计数即可)。通过输出比较产生1ms定时中断(总线8MHZ,1ms中断即8000个上升沿/下降沿,TCNT不断对时钟信号计数,当达到TCn寄存器值时进入中断,所以TCn的值要不断刷新。)?OC0Cnt计数器记录进入中断次数,1000次即为1s,此时再将临时存放的频率赋给采样频率变量。采样频率获得。
[attach]24396[/attach]
[attach]24397[/attach]
    为了方便测试,两个例程中都包含信号源(PWM4端口产生),大家将PWM4端口的输出接入相应的定时器模块端口即可进行采样了(也就是TIM模块采集当前PWM输出信号),为了更方便说明,我把PWM模块例程也传上来,一个是不级联通道的,一个是级联通道的。供大家参考。
[attach]24398[/attach]
[attach]24399[/attach]

作者: 荑`o_~    时间: 2012-5-11 23:11
支持,顶一个
作者: 510035138    时间: 2012-5-12 16:22
谢谢啊。
作者: 丁香花    时间: 2012-5-18 21:04
510035138 发表于 2012-5-12 16:22
谢谢啊。

自己顶一下。

作者: 放开那女孩    时间: 2012-5-20 16:53
好东西,谢谢

作者: WangLunShuer    时间: 2012-5-20 21:37
楼主很经验
作者: jusson    时间: 2012-5-24 14:30
mini绝对式编码器测速&测转向非常方便,可以考虑下,淘宝上有卖
作者: 期待着你2010    时间: 2012-9-7 15:12
顶。。
作者: 枫叶飘泊    时间: 2012-9-21 13:36
楼主真心好人啊
作者: qxdzhidao    时间: 2012-9-25 09:55
不错,楼主是个有心人啊,谢谢:):):)
作者: 疾速魅影    时间: 2012-12-23 16:15

作者: 亮亮up    时间: 2012-12-27 18:04

作者: liuyuliuyu1216    时间: 2012-12-28 08:24
不错,好东西
作者: mxj1005071012    时间: 2012-12-28 20:12
haodongxi

作者: sidly    时间: 2013-1-1 12:35
好东西




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2