基于2440PWM定时器程序

本文详细介绍了如何配置S3C2440的PWM定时器,包括读取和设置定时器配置寄存器、计算计数缓存寄存器和比较缓存寄存器的值,以及控制寄存器的操作,最终实现PWM输出。通过具体的代码示例,阐述了设置过程和逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               关于PWM定时器的一些思路
1.参考s3c2440手册第十章定时器手册。以下是设置定时器寄存器:
(注意:一下是以TQ2440为列)
包括四个定时器 由于开发板总定时器的输出接口与蜂鸣器的接口
相联(GPB0),所以要得到定时器的输出可以获取GPB0的高低电频
变化频率,现在开始设置和PWM相关的寄存器,
pwm一共包括四个寄存器:
tcon;
tcnt;
tcfg1;
tcfg0; 
以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和
2440手册PWM寄存器操作部分来看就比较容易理解 
1.读取定时器配置寄存器1的值预分频值
2.读取定时器配置寄存器0的值预分频值
3.将tcfg0和tcfg1的值分别写入寄存器1和0中
4.设置比较寄存器与计数寄存器的值
5.读取控制寄存器的值
6.关闭死区、自动重载、关反相器、更新TCNTB0&TCMPB0、启动定时器0
7对GPB0复用口进行复用功能设置,设置为TOUT0 PWM输出
具体实现代码如下
   //以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和2440手册PWM寄存器操作部分来看就比较容易理解
  tcfg1 = __raw_readl(S3C2410_TCFG1);     //读取定时器配置寄存器1的值预分频值
  tcfg0 = __raw_readl(S3C2410_TCFG0);//读取定时器配置寄存器0的值分频值
  tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;// 内核下的arch/arm/mach-s3c2410/include/mach/regs-timer.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值