文件名称:TIM1应用实例-a2-漫画相对论
文件大小:6.09MB
文件格式:PDF
更新时间:2024-07-01 09:23:32
STM8 STVD IAR 寄存器 库函数
6.9 TIM1应用实例 TIM1是一个 16位向上/向下计数的定时器,是 STM8S单片机的定时器中功能最丰富的定时器。我 们在这一章节中利用 TIM1完成 2个 TIM1最主要的功能:一是用 TIM1的输出比较功能输出方波;二是 利用 TIM1的输入捕获测量外部信号的频率。 6.9.1TIM1输出比较实例 本实例利用 TIM1的输出比较功能输出一个频率为 10Hz的方波,方波的输出口为 PC3,因为 PC3通 过灌流方式外接一个 LED D1,所示实验现象为 D1在不断闪烁。 输出比较用来控制一个输出波形或指示一段给定的时间已经到达。当定时器计数器的值与捕获/比较 寄存器的值相同时,选中的输出比较通道会产生以下电平: ■保持不变 ■高电平 ■低电平 ■翻转 输出比较模式的配置步骤为: ■选择计数器的时钟源:内部时钟、外部时钟、分频等; ■设置 TIM1_ARR寄存器及 TIM1_CCRi寄存器; ■如果需要产生中断,设置 TIM1_IER寄存器的对应位; ■选择输出模式(以翻转输出为例): —要求计数器与 TIM1_CCRi寄存器匹配时翻转输出电平,设置 TIM1_CCMRi寄存器的 OCiM位; —清零 TIM1_CCMRi寄存器的的 CCiPE位,以禁用预装载寄存器; —清零 TIM1_ER寄存器的 CCiP位,以设置高电平为有效电平; —置位 TIM1_ER寄存器的 CCiE位,以使能输出; ■置位 TIM1_CR1寄存器的 CEN位来使能定时器计数器。 6.9.1.1使用寄存器控制 TIM1产生方波 程序的主函数为: void main( void ) { InitLED();//初始化 LED InitTIM1();//初始化 TIM1 while(1) { } } 函数中 InitTIM1()用于初始化 TIM1为输出比较模式,具体实现代码为: void InitTIM1(void) { //分频,1分频