- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM8教程-第十三章STM8S207定时器模块及其应用实例
第十三章 STM8S207 定时器模块及其应用实例这一节,我们将向大家介绍如何使用 STM8 的定时器中的基本定时功能,STM8 的定时器功能十分强大,有 TIM1 高级定时器,也有 TIM2、TIM3 等通用定时器,还有 TIM4 基本定时器。在 STM8S 参考手册里面,定时器的介绍占了 1/3 的篇幅,足见其重要性。这一节,我们分别介绍 TIM1 到 TIM4 定时器中的基本定时功能。例程一、16 位高级控制定时器(TIM1) 简介: TIM1 由一个 16 位的自动装载计数器组成,它由一个可编程的预分频器驱动。 TIM1 有 4 个通道,分别是 1 到 4。分别对应于四个不同的捕获/比较通道。 高级控制定时器适用于许多不同的用途: 基本的定时 测量输入信号的脉冲宽度(输入捕获) 产生输出波形(输出比较,PWM 和单脉冲模式) 对应与不同事件(捕获,比较,溢出,刹车,触发)的中断 与 TIM5/TIM6 或者外部信号(外部时钟,复位信号,触发和使能信号)同步 高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM 的应用,该模式支持互补输出和死区时间控制。 高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。 这一节我们实现的功能是基本的定时,关于 PWM 的编程留下以后的章节中。还有建议大家研究更为深入的功能 TIM1 的时基单元包括,如下图所示: ● 16 位向上/向下计数器 ● 16 位自动重载寄存器 ● 重复计数器 ● 预分频器16 位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件进行读写操作。 自动重载寄存器由预装载寄存器和影子寄存器组成。 可在在两种模式下写自动重载寄存器: ● 自动预装载已使能(TIM1_CR1 寄存器的 ARPE 位置位)。在此模式下,写入自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。 ● 自动预装载已禁止(TIM1_CR1 寄存器的 ARPE 位清除)。在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。 更新事件的产生条件: ●计数器向上或向下溢出。 ●软件置位了 TIM1_EGR 寄存器的 UG 位。 ●时钟/触发控制器产生了触发事件。 在预装载使能时(ARPE=1),如果发生了更新事件,预装载寄存器中的数值(TIM1_ARR)将写入影子寄存器中,并且 TIM1_PSCR 寄存器中的值将写入预分频器中。 置位 TIM1_CR1 寄存器的 UDIS 位将禁止更新事件(UEV)。 计数器由预分频器的输出 CK_CNT 驱动,而 CK_CNT 仅在 IM1_CR1 寄存器的计数器使能位(CEN)被置位时才有效。简要说明: CK_PSC 的时钟来源于 f_master,我们使用 16M 内部时钟源 HIS 然后可以通过 PSCR 这个寄存器设置 CK_CNT,PSCR 是 2 个 8 位寄存器组成的16 位寄存器,可以在 0~65535 之间任务分频,分频后的频率提供给 CK_CNT 我们的实验为了方便计算,CK_CNT 为1K 的频率,所以PSCR = 16M/1K = 16000,换成 16 进制为 0x3E80 我们使用了默认的向上溢出,所以为了 500ms 溢出中断一次,需要设置 ARPE这个定时器,而且设置为自动预装功能,这样就可以一直提供 2Hz 的频率中断 最后允许中断和计数器使能就可以实现我们的功能 有了以上的基础就可以进入到 TIM1 的基本定时器编程了,为了验证效果,我们采用了 LED0 作为判断依据。在 TIM1 的溢出中断服务程序中闪耀 LED0 程序代码如下: #include iostm8s207rb.h #define LED1_FLASH PD_ODR_ODR0 = !PD_ODR_ODR0 void CLK_Init(void); void GPIO_Init(void); void TIM1_Init(void); void main( void ) { CLK_Init(); GPIO_Init(); TIM1_Init();asm(rim); // 主循环里没有程序需要执行 while(1); } void CLK_Init(void) { CLK_CKDIVR = 0x00; // 16M内部RC直接输出 } void GPIO_Init(void) { PD_DDR = 0x01; // 配置PD端口的方向寄存器PD0输出 PD_CR1 = 0x01; // 设置PD0为推挽输出 PD_ODR = 0xFF; } void TIM1_Init(void) { TIM1_PSCRH = 0x3E; // 16M系统时钟经预分频
您可能关注的文档
- 2015年深圳市创客专项资金项目申请指南.doc
- 2015年江西省造价员考试判断题答案.docx
- 2015年秋季华南师范大学网络教育《行政管理学》100分作业答案.doc
- 2015年邯郸专业人员继续教育答案(5科).doc
- 2015年网络教育学习概论A卷.docx
- 2015年重庆市监理工程师继续教育考试题目.docx
- 2015年辽宁省二建继续教育--机电工程专业习题(含答案).doc
- 2015年盐城市中考物理试卷(word版,含答案).doc
- 2015泸州市专业技术人员继续教育试题及答案.doc
- 2015福建省中小学教师心理健康教育通识培训在线测试练习一和答案.doc
- 2025年山东铝业职业学院单招职业适应性考试题库附答案.docx
- 2025年山西体育职业学院单招综合素质考试题库推荐.docx
- 2025年山西体育职业学院单招综合素质考试题库及答案1套.docx
- 2025年山东铝业职业学院单招职业适应性测试题库附答案.docx
- 2025年山东铝业职业学院单招职业适应性考试题库必威体育精装版.docx
- 2025年山东铝业职业学院单招职业技能考试题库及答案1套.docx
- 2025年山东铝业职业学院单招职业适应性测试题库推荐.docx
- 领养狗协议书模板.docx
- 2025年山东铝业职业学院单招职业技能考试题库必威体育精装版.docx
- 2025年山西体育职业学院单招职业适应性测试题库推荐.docx
文档评论(0)