专题1 输出CCU6模块的定时器T13 的周期寄存器 以及输入频率 F(t13) 专题二 专题二: 假设 调制输出模块 cc60的输出用的是定时器T13 , 被动状态不设置。被动状态下的输出电平也不是设置 T13的周期寄存器是5000 比较寄存器是4000 占空比20% 如何改为互补输出 占空比为80%
专题一: 输出CCU6模块的定时器T13 的周期寄存器 以及输入频率
他是根据T13所需要的输出频率 来自动设置周期寄存器的值的 。
现在我想自己编写一个程序,来配置定时器T13的输入时钟。以及定时器T13的周期寄存器的。
重点分析一下这个函数
现在分析一下:
专题二:
假设 调制输出模块 cc60的输出用的是定时器T13 , 被动状态不设置。被动状态下的输出电平也不是设置 T13的周期寄存器是5000 比较寄存器是4000 占空比20%
如何改为互补输出 占空比为80%
为调制输出引脚CC60 选择输入信号
可以选择定时器T13输出 CC63_O 从手册图25-30可知CC63_O可以选择CC63ST或者
,
也可以选择T12输出 CC60_O
如下图25-18
注意下图的CC63_O 其实的是一个状态 ,主要不是电平。
在CMPSTAT中 CC60PS CC61PS CC62PS COUT60PS COUT61PS COUT62PS
COUT63PS 选择被动电平
为0 的表示 低电平是被动状态 。 相反 高电平是主动状态。
为1 表示 高电平是被动状态。 相反 低电平是主动状态。
通过CMPSTAT寄存器中状态为CC60ST CC61ST CC62ST CC63ST (以上4个是只读位)
表达了一个意思 当计数器小于比较值输出低电平 。
当计数器大于比较值输出高电平。
如下图:
(1) ·CC60ST是一个电平(比较通道输出的高电平或者低电平) 而经过了CMPSTAT中的
CC60PS以后 就变成了 CC60_O , 而CC60_O 就是一个状态(主动或者被动)
如下图:
T12对应的电平与状态的关系
CC60 用的是定时器T13的输出
T13的设置如下
的时钟等于 , 等于100MHz 不经过任何分频变为 ,
所以T13的周期寄存器5000 (实际寄存器是5000-1), 对应的T13的开关频率是20kHz
CC63ST的在T13 的计数器小于4000的时候 输出为低电平 0
CC63ST 状态在T13 计数器大于4000 的时候 输出为高电平 1
因为CMPSTAT的 T13IM 是 0
那么也就是说 CC63_O 对应的输入是CC63ST
我认为 低电平时被动状态 。
高电平是主动状态 。
另外PSLR寄存器的PSL0位阈 也是0 就被动状态的输出电平也为0 。
下图是寄存器的状态:
上图的T13M 和PSL 都为0
所以虽然定时器T13连接到C60的输出模块上, 但是T13M=0 PSL0也为0
所以我认为逻辑就是 T13边沿模式 周期寄存器是4999 周期是4999+1=5000
比较寄存器是4000
所以计数器小于4000 CC63ST是低平, 计数器大于4000 CC63ST 是高电平
这个是默认状态。
如果我想把计数器小于4000 的时候 输出高电平。
计数器大于4000的时候 输出低电平。
我想有两个办法 :
(1) 改变T13IM
我把PSL 对应的位设置一下
我感觉有的时候如果我看不懂某段内容,我不如去做实验验证下。因为有时候,语言表达的能力是有限的
方式一 改变T13IM位阈
下载编译程序以后 CMPSTAT寄存器的T13IM位阈确实变为了1
改变之前
占空比是20%
改变以后占空比是80%
方法二: 改变PSLR寄存器中的PSLR0位阈
(二)改变之前PSL是 0
编译以后 PSL.0 就是1 了 如下图
占空比也是80%
总结: 看手册的过程 ,第一次看完一个章节。你不可能完全都理解。许多知识我都是回看
第二遍 甚至第三遍才真正理解。 可能天赋不够,这是适用你的客观规律。
第二:有时 语言的表达本来就局限。如果实在理解不了。你通过动手试验去探索学习,有时也是一种高效的方法。