2440的PWM操作步骤

搞了好长时间,终于把2440的PWM搞定了,原来错误是出在我的疏忽上,有一句话没有好好看:NOTE: The bits have to be cleared at next writing.

下面是PWM的设置步骤:

一、设置CLKCON的PWMTIMER位为1。Control PCLK into PWMTIMER block.  0 = Disable, 1 = Enable

虽然复位值是1,但有时可能在某些地方修改,建议还是多这一句吧。

二、设置分频器TCFG0和TCFG1。使为期望之值。 

三、设置TCON。一般要使Timer  n  auto reload on/off位为1;Timer n manual update为1

四、设置 TCNTBn和TCMPBn。说明书上讲了那么多,意思就这一句话:

当TCNTB > TCOMPB 时输出低,当TCNTB < TCOMPB输出高。此为“约定”设置。

五、启动,并清除手动更新位。

///
 、、、、、、、、、、、、、、、、、、、
 、、、、、、、、、、、、、、、、、、、

/*************************************************************************/

//backlight control
    rGPBCON = 0x0a;  //GPB0, GPB1 as a TOUT[0:1]
    rGPBUP  = 0x7fc;     // The pull up function is disabled GPB[10:2]

 rCLKCON |= 0x100;
 rTCFG0 &= 0xFFFF00;
 rTCFG0 |= 0x31;    //prescal by 50, T0~1
 rTCFG1 &= ~0xF0;    //use timer1 ,1/2. 50MHz/50/2=500kHz
 //rTCFG1 |= 0x00;
 rTCNTB1 = 0x32;
 rTCMPB1 = 0x10;
 rTCON &= 0xFFF0FF;
 rTCON |= 0xa00;
 rTCON =  0x900;    //start
///

PWMPulse Width Modulation)——脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。

s3c2440芯片中一共有516位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能,因此用s3c2440可以很容易地实现PWM功能。下面就具体介绍如何实现PWM功能。

它是通过寄存器TCON来实现的,一般来说每个定时器主要有4个位要配置(定时器0多一个死区位):启动/终止位,用于启动和终止定时器 ;手动更新位,用于手动更新TCNTBn和TCMPBn,这里要注意的是在开始定时时,一定要把这位清零,否则是不能开启定时器的;输出反转位,用于改变输出的电平方向,使原先是高电平输出的变为低电平,而低电平的变为高电平;自动重载位,用于TCNTn减为零后重载TCNTBn里的值,当不想计数了,可以使自动重载无效,这样在TCNTn减为零后,不会有新的数加载给它,那么TOUTn输出会始终保持一个电平(输出反转位为0时,是高电平输出;输出反转位为1时,是低电平输出),这样就没有PWM功能了,因此这一位可以用于停止PWM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值