注册 登录
查看: 617|回复: 7

[K60] FTM输入捕捉

[复制链接]
发表于 2014-2-19 23:49:00 | 显示全部楼层 |阅读模式
本帖最后由 1503756 于 2014-2-20 00:51 编辑

我想用FTM1模块实现编码器的脉冲计数,但是无法重置模块寄存器FTM1_CNT的计数值,看技术文档说给FTM1_CNT写任意值即可清空,试了还是不行
回复

使用道具 举报

发表于 2014-2-20 10:25:37 | 显示全部楼层
重置计数给它赋0不可以???给编码器计数的话建议使用正交解码来计数,更精确
回复 支持 反对

使用道具 举报

发表于 2014-2-20 10:52:15 | 显示全部楼层
赋值为0(写任意值)就可以清0的啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 12:45:48 | 显示全部楼层
本帖最后由 1503756 于 2014-2-20 12:47 编辑
♂荻夜 发表于 2014-2-20 10:25
重置计数给它赋0不可以???给编码器计数的话建议使用正交解码来计数,更精确
我是电磁组的的,舵机跟电机占用了两个模块,只剩下一个FTM模块,而有两个编码器,用正交解码不够
怎么重置计数呢?能不能把代码给我看一下,我按技术文档的清零方法不行,我的代码大概这样子:
uint16 ch1=FTM1_CNT;
uint16 ch2=FTM_CnV_REG(FTM1_BASE_PTR,FTM_CH1);
FTM1_CNT=0;

技术文档还说给Cnsc寄存器赋值也会计数值清零,我试了用FTM1_CnSC(1)|=FTM1_CnSC(1);还是不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 12:48:34 | 显示全部楼层
戈矛 发表于 2014-2-20 10:52
赋值为0(写任意值)就可以清0的啊

代码在上面,你看看是不是我的赋值方法不对
回复 支持 反对

使用道具 举报

发表于 2014-2-20 12:51:34 | 显示全部楼层
需要 把 CNTIN 置0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 13:04:30 | 显示全部楼层
39.4.3.4 Counter Reset
Any write to CNT resets the FTM counter to the value in the CNTIN register and the
channels output to its initial value (except for channels in output compare mode).
技术文档里边的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 13:23:13 | 显示全部楼层
山外メ雲ジ 发表于 2014-2-20 12:51
需要 把 CNTIN 置0

还是不行,这个BDM是什么,应该没影响吧
39.3.4 Counter (FTMx_CNT)
The CNT register contains the FTM counter value.
Reset clears the CNT register. Writing any value to COUNT updates the counter with its
initial value (CNTIN).
When BDM is active, the FTM counter is frozen (this is the value that you may read).
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部