linux 定时器中断和pwm,第八章 PWM定时器在Linux设备驱动中的应用

《第八章 PWM定时器在Linux设备驱动中的应用》由会员分享,可在线阅读,更多相关《第八章 PWM定时器在Linux设备驱动中的应用(14页珍藏版)》请在人人文库网上搜索。

1、嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM定时器在定时器在Linux设备 驱动中的应用 设备 驱动中的应用 主讲:贺光辉主讲:贺光辉 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM定时器定时器 S3C2440共有5个16位的定时器,定时器0、1、2、3有 PWM功能,即它们都有一个输出引脚,可以通过定时器来 控制引脚周期性的高、低电平变化,定时器4没。

2、有输出引脚 定时器0、1共用第一个预分频器,定时器2、3、4共用第 二个预分频器 定时器部件的时钟源为PCLK,通过两个8位预分频器降低 频率: 预分频器(Prescaler):预分频值=0255,通过TCFG0设置 第二级分频器(MUX):取值2、4、6、8或者外部时钟TCLK0/TCLK1,通过 TCFG1设置 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM定时器内部结构图定时器内部结构图 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式。

3、家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM定时器内部控制逻辑的工作流程定时器内部控制逻辑的工作流程 程序初始,设置TCMPBn、TCNTBn这两个寄存器,它 们表示定时器n的比较值、初始计数值 随之设置TCON寄存器启动定时器n,这时,TCMPBn、 TCNTBn的值将被装入其内部寄存器TCMPn、TCNTn中。 在定时器n的工作频率下,TCNTn开始减一计数,其值可 以通过读取TCNTOn寄存器得知。 当TCNTn的值等于TCMPn的值时,定时器n的输出管脚 TOUTn反转;TCNTn继续减一计数 定时器n的输出管脚TOUTn初始状态为高电平,以。

4、后在TCNTn的值等于TCMPn的值 、TCNTn的值等于0时反转。 当TCNTn的值到达0时,其输出管脚TOUTn再次反转, 并触发定时器n的中断 当TCNTn的值到达0时,如果在TCON寄存器中将定时器 n设为“自动加载”,则TCMPB0和TCNTB0寄存器的值被自 动装入TCMP0和TCNT0寄存器中,下一个计数流程开始。 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM定时器使用的寄存器组定时器使用的寄存器组 TCFG0配置寄存器0 TCFG1配置寄存器1 TCNTB。

5、n计数缓冲寄存器 TCMPBn比较缓冲寄存器 TCNTOn计数观察寄存器 TCON控制寄存器 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / 定时器配置寄存器定时器配置寄存器TCFG0/TCFG1 TCFG0寄存器 位7:0、位15:8分别用于控制预分频器0、1,它们的值为0-255,经过预分频器出 来的时钟频率为:PCLK/prescaler value+1 TCFG1寄存器 经过预分频器得到的时钟将被2分频、4分频、8分频、16分频,除这4种频率外,定 时器0、1还可以工作在外。

6、接的TCLK0时钟下,定时器2、3、4还可以工作在外接的 TCLK1时钟下。 定时器工作频率: freq =PCLK/prescaler value+1/divider value 其中:prescaler value= 0255 divider value=2、4、8、16 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / 定时器配置寄存器定时器配置寄存器TCFG0 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开。

7、发板商城开发板商城开发板商城http:/ / 定时器配置寄存器定时器配置寄存器TCFG1 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / TCNTBn/TCMPBn寄存器寄存器 TCNTBn(Timer n Count Buffer Register) TCMPBn(Timer n Compare Buffer Register) n为04。这两个寄存器都只用到位15:0; TCNTBn中保存定时器的初始计数值; TCMPBn中保存比较值; 它们的值在启动定时器时,被传到定时器内部。

8、寄存器 TCNTn、TCMPn中。 没有TCMPB4,因为定时器4没有输出引脚 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / TCNTOn寄存器寄存器 TCNTOn寄存器(Timer n Count Observation Register) 定时器n被启动后,内部寄存器TCNTn在其工作时钟下不断减一计数,可以通过读 取TCNTOn寄存器得知其当前值。 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开。

9、发板商城开发板商城http:/ / TCON寄存器寄存器 TCON寄存器(Timer Control Register) 它有以下4个作用: 第一次启动定时器时“手动”将TCNTBn/TCMPBn寄存器的值装入内部寄存器 TCNTn、TCMPn中。 启动、停止定时器。 决定在定时器计数到达0时是否自动将TCNTBn/TCMPBn寄存器值装入内部寄存器 TCNTn、TCMPn中。 决定定时器的管脚TOUTn的输出电平是否反转。 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / TCON。

10、寄存器寄存器 TCON寄存器格式: 注意:在第一次使用定时器时,需要将“手动更新”位置1,以使 TCNTBn/TCMPBn寄存器的值装入内部寄存器TCNTn、TCMPn中。下 一次如果还要设置这一位,需要先将它清0。 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / PWM控制寄存器设置函数控制寄存器设置函数Buzzer_Freq_Set 嵌入式家园嵌入式家园嵌入式家园嵌入式家园 上海嵌入式家园上海嵌入式家园上海嵌入式家园上海嵌入式家园- -开发板商城开发板商城开发板商城开发板商城http:/ / 实验实验 任务一、实现使用任务一、实现使用PWM定时器来控制蜂鸣器的鸣叫驱 动实验 定时器来控制蜂鸣器的鸣叫驱 动实验 pwm_beep。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值