S3C2410 PWM定时器.ppt_第1页
S3C2410 PWM定时器.ppt_第2页
S3C2410 PWM定时器.ppt_第3页
S3C2410 PWM定时器.ppt_第4页
S3C2410 PWM定时器.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

回顾 S3C2410时钟信号及用途 FCLK PCLK HCLK UCLKS3C2410片内的总线 AHB APBS3C2410的看门狗控制器编程步骤初始化看门狗控制器时钟设置 输出类型设置 给WTCON相应位赋值 计数器初始值设定 给WTCNT相应位赋值 数据寄存器赋值 给WTDAT相应位赋值 如果把看门狗作为一个普通的定时器使用 还必须把看门狗定时中断处理程序填入中断向量表中 并把相关的中断控制寄存器初始化 使能看门狗控制寄存器 给WTCON相应位赋值 S3C2410PWM定时器 S3C2410PWM定时器概述 S3C2410PWM定时器的操作 S3C2410PWM定时器相关的寄存器 S3C2410PWM定时器的应用编程 教学要求 了解PWM及死区的作用掌握S3C2410PWMTimer工作原理掌握利用S3C2410PWMTimer输出PWM波形的操作方法与编程步骤 PWM脉冲的作用 现在有这样个问题 让你设计一个电路能够任意调节灯泡的亮度 该怎样做呢 脉冲宽度调制 PWM 脉冲宽度调制 PWM 是英文 PulseWidthModulation 的缩写 简称脉宽调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 广泛应用在从测量 通信到功率控制与变换的许多领域中 S3C2410Timer部件概述 S3C2410芯片内部拥有5个16位的Timer部件Timer0 Timer1 Timer2 Timer3具有脉宽调制 pwm 功能 具有PWM脉冲输出引脚 Timer4仅作定时器用 不具有PWM功能 没有输出引脚 Timer0有一个死区 deadzone 发生器 每个Timer部件所需的计数时钟信号均需系统提供的pclk时钟两次 变速 预分频和再分频 所得 Timer0 Timer1共享一个8位的预分频器 共享一个4位的再分频器 Timer2 Timer3 Timer4共享另一个8位预分频器 共享另外一个4位的再分频器 详见S3C2410datasheet S3C2410Timer部件概述 5个Time部件最核心的东西仍然是一个脉冲减一计数器 n 0 1 2 3 黄颜色部分为Timer4的模块 因为其没有脉冲输出 仅仅是一个普通的定时器而已 定时中断 S3C2410Timer部件的操作 Time4因为没有脉冲输出 所以其操作比较简单 减一计数器TCNT4溢出时产生定时中断 同时TCNTB4中的值会复制到TCNT4中开始下一轮计数 初始化 while 1 脉冲计数 if TCNTn TCMPn Toutn Toutn if TCNTn 0 发定时中断请求 if TCNT 1 Toutn Toutn TCNTn TCNTBn TCMPn TCMPBn n 0 1 2 3 右图为工作原理的伪代码描述 S3C2410Timer部件的操作 下图 为s3c2410定时器的操作图 Figure10 2Timeroperations 开始位 1 表示启动定时器开始计数 手动更新位 1 表示将计数缓冲寄存器TCNTBn中的内容复制到计数寄存器TCNTn 比较缓冲寄存器TCMPBn中的内容复制到比较寄存器TCMPn 自动重载 1 表示计数器溢出时会自动将计数缓冲寄存器TCNTBn中的内容复制到计数寄存器TCNTn 比较缓冲寄存器TCMPBn中的内容复制到比较寄存器TCMPn S3C2410Timer部件的操作 S3C2410Timer部件的操作 注意 程序不能直接对TCNTn进行读写 若但一定要读其中的数据 可以读TCNTOn在程序中 TCNTn和TCMPn的值可以在初始化时 定时器开启前 手动更新 手动更新位置1 在溢出时自动重载 自动重载位置1 反转器位关闭时 Toutn的初始电平为高电平 反之则反之 反转位一旦变化 TOUT电平立即发生变化 S3C2410Timer部件的操作 Timer0死区功能开启时的效果是Tout0和nTout0不会同时出现高电平 如果Tout0和nTout0用于控制两个不能同时开关器件 则这两个电器不会同时开闭 Timer寄存器共有6种 17个寄存器 TCNTBn Timern计数初值寄存器 计数缓冲寄存器 16位TCMPBn Timern比较寄存器 比较缓冲寄存器 16位TCNTOn Timern计数读出寄存器 16位 S3C2410Timer相关的寄存器 Deadzonelength 死区宽度设置位其值N为 0 255 以timer0的工作时钟为单位死区宽度为 N 1 timer0的1次计数时间Prescaler1 timer2 3 4的预分频值其值N为 0 255输出频率为 PCLK N 1 Prescaler0 timer0 1的预分频值其值N为 0 255输出频率为 PCLK N 1 TCFG0 预分频器配置寄存器 TCFG1 DMA模式与分频选择寄存器 DMAmode DMA通道选择设置位0000 不使用DMA方式 所有通道都用中断方式0001 选择timer00010 选择timer10011 选择timer20100 选择timer30101 选择timer4011X 保留MUX4 MUX0 timer4 timer0分频值选择0000 1 20001 1 40010 1 80011 1 1601XX 选择外部TCLK0 1 对timer0 1是选TCLK0 对timer4 3 2是选TCLK1 TL4 TL0 计数初值自动重装控制位0 单次计数1 计数器值减到0时 自动重新装入初值连续计数 TUP4 TUP0 计数初值手动装载控制位 0 不操作1 立即将TCNTBn中的计数初值装载到计数寄存器TCNTn中 说明 如果没有执行手动装载初值 则计数器启动时无初值 TCON 定时器控制寄存器 TR4 TR0 TIMER4 TIMER0运行控制位0 停止1 启动对应的TIMERTO3 TO0 TIMER4 TIMER0输出控制位0 正相输出1 反相输出DZE TIMER0死区操作控制位0 禁止死区操作1 使能死区操作 TCON定时器控制寄存器 续 1 按照前面初始化定时器 设置TCNTBn 160 50 110 TCMPBn 110 手动装入初值后 又重设TCNTBn 80 TCMPBn 40 自动重装初值开启 2 启动定时器 按第一个初值计数 3 与第一个比较值相同 输出取反 4 第一次计数结束 自动重装初值80 40 5 在第一次中断处理程序又重设TCMPBn 60 6 与第二个比较值相同 输出取反 7 第二次计数结束 自动重装初值80 60 8 在第二次中断处理程序禁止自动重装初值 准备结束计数 9 与第三个比较值相同 输出取反 10 第三次计数结束 不再计数 5011040402060 123467910 5 TOUTn 8 定时器产生PWM操作例子 S3C2410的定时器控制器编程举例 例 编写一程序 利用S3C2410定时器产生PWM信号 驱动实验板上蜂鸣器鸣叫 设S3C2410的PCLK为50MHz 见参考代码PWMTIMER 20 小结 1 写TCFG0 设置计数时钟的预分频值和Timer0死区宽度 2 写TCFG1 选择各个定时器的分频值和DMA 中断服务 3 对TCNTBn和TCMPBn分别写入计数初值和比较值 4 写TCON 设置计数初值自动重装和手动装载 5 再写TCON 清除手动装载初值位 设置输出反转位 启动计数 PWM定时器初始化方法 思考题 1 PWM及死区的作用 2 S3C2410定时器工作原理 3 S3C2410定时器计数器和比较器 是由哪个寄存器实现重载 以及重载的方法有哪些 本周小课预习内容 如何使用单片机凑音乐 自我网上学习音乐简谱知识 什么是音符 音长及相关符号的含义 能基本会看简谱 实验板上蜂鸣器控制端口对应的是哪个定时器的PWM信号输出 S3C2410PWM定时器如何开启 即回答哪个位让它开始定时计数 自动更新位和手动更新位是哪个寄存器的第几位以及他们作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论