飞翔科技电子爱好者论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2314|回复: 1

TPM模块问题

[复制链接]

1

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2017-7-31 14:06:33 | 显示全部楼层 |阅读模式
TPM1C0V = 62500+TPM1CNT;     语句1
这个语句是输出比较示范程序里的,程序目的说是为了比较TPM1C0V和TPM1CNT的值,当相等的时候,则中断,我想问为什么要这样赋值,,直接改成
TPM1C0V=62500;    语句2
程序也能正常运行,中断也能产生,但是就是灯闪的速度不一样,我想知道语句1和2的赋值区别是什么,TPM1CNT的初始值是什么,而且编译的时候预计1还有警告。



请大神们解决一下,谢谢!
回复

使用道具 举报

7

主题

330

帖子

1338

积分

超级版主

Rank: 8Rank: 8

积分
1338
发表于 2017-7-31 20:42:49 | 显示全部楼层
TPM1CNT是TPM模块内部的计数器,它是在0~65535之间循环计数的。TPM1C0V是比较寄存器,当TPM1C0V和TPM1CNT的值相等时会产生输出比较事件。用TPM1C0V = 62500+TPM1CNT表示在当前计数器的基础上在加上62500,也就是说TPM1CNT再记62500个数与TPM1C0V 相等,此时比较周期是62500个TPM1CNT的周期。如果写成TPM1C0V=62500;则TPM1CNT每次计数到62500时产生比较事件,此时比较周期是65535个TPM1CNT周期。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|飞翔科技电子爱好者论坛  

GMT+8, 2019-4-20 16:24 , Processed in 0.330879 second(s), 24 queries .

Powered by Discuz X3.2

© 2001-2011 Comsenz 源码论坛

返回顶部