金牌会员
- 积分
- 1834
- 威望
- 723
- 贡献
- 449
- 兑换币
- 449
- 注册时间
- 2013-1-3
- 在线时间
- 331 小时
|
1贡献
实际应用:
目标:输出一个周期为400ms ,占空比为50%的方波。
分析:首先利用PLL 将周期设置为40M ,
然后选择时钟源
PWMCLK = 0xFF; /* 选择时钟源 SA,SB*/
PWMPRCLK = 0x77; /* clock A,B =总线时钟/128 */
PWMSCLA = 0; /* clock SA = Clock A/512 */
PWMSCLB = 0; /* clock SB = Clock B/512 */
这个时候时钟SA 或SB 为40M/128/512 = 610HZ
1/610HZ=1.64ms
我们选择中间对齐模式:
PWMCAE = 0xFF; /* 输出时是中间对齐的 */
PWMPOL = 0xFF; /*输出以高电平开始 ---___*/
接下来就要选择周期了:
中间对齐时:PWM 周期=通道时钟周期*2*PWMPERX;因为要设置周期为400ms ,所
以 400ms = (1000/610)ms * 2 *PWMPERX, 由此可以算出PWMPER=122=0x7A.
PWMPER0=0x7A;
接下来设置占空比:
当PPOLx=1 时,占空比= 占空比寄存器值除以周期寄存器值。50%= PWMDTY0/122,
所以PWMDTY0=61=0x3D
PWMDTY0=0x3D;
接下来启用PWM 通道0 :
PWME=0x01;
就这里面 (1000/610)ms 是怎么回事??
O(∩_∩)O谢谢啦
|
最佳答案
查看完整内容
通道时钟频率为40M/128/512 = 610HZ
那么通道时钟周期 = 1000/610 ms
|