历史上的今天
今天是:2025年01月06日(星期一)
2020年01月06日 | STM8学习笔记---定时器 TIM1功能实现
2020-01-06 来源:eefocus
STM8单片机的定时器1是一个16位定时器

定时器1为高级定时器,主要特性如下:

定时器1的寄存器比较多,


如果单纯的只是用定时功能的话,用不到这么多的寄存器。定时功能需要设置的寄存器主要有自动重装载寄存器ARR、预分频寄存器PSCR、控制寄存器CR、状态寄存器SR、中断使能寄存器IER。
初始化代码如下:
void Timer1_Init( void )
{
TIM1_ARRH = ( unsigned char )( 1000 >> 8 ); //定时1ms
TIM1_ARRL = ( unsigned char )( 1000 );
TIM1_PSCRH = ( unsigned char )( 0x0F >> 8 ); // 16M / (1+15) =1M
TIM1_PSCRL = ( unsigned char )( 0x0F );
TIM1_RCR = 0x00; //重复计数器值
TIM1_SR1 = ( ~0x01 ); //清除更新中断标志
TIM1_CR1 |= 0x01; //使能计数器
TIM1_IER |= 0x01; //更新中断使能
}
首先通过自动重装载寄存器设置自动重装载值,设置ARR值为1000,也就是说计数器从0开始计数,计数值到达1000后,产生一次中断,然后继续从0开始计数,当计数器值1000后不需要手动设置寄存器的值,因为TIM1的计数值是自动装载的。
下来设置分频数。

时钟默认选择的是内部16M晶振,此处设置分频值为15,所以TIM1的时钟频率就为 16M /(1+15)=1MHz。
接下来首先清除中断标志位,再使能计数器,开启中断功能,定时器1的初始化就结束了。下来编写中断服务函数。
#pragma vector = 13 // IAR中的中断号,要在STVD中的中断号上加2
__interrupt void Timer1_Handle( void ) //1ms 定时中断
{
TIM1_SR1 = ( ~0x01 ); //清除更新中断标志
time_cnt++;
if( time_cnt > 999 )
{
time_cnt = 0;
LED = !LED;
}
}
中断服务函数比较简单,进入中断后首先清除中断标志位,然后再中断中统计中断次数,中断设置的是1ms中断一次,当中断次数超过999次时,也就是1000ms,翻转一次LED灯的电平。
这样定时器1实现的功能就是1s中LED灯翻转一次,定时器1的定时功能就实现了。
史海拾趣
|
向量中断简介 ARM7中断体系介绍 上一次活动中,我们介绍了ARM7的时钟系统,这次活动介绍中断系统。这个两个系统是在以后的活动中,有很多的应用,同时这两个系统,也是ARM甚至是所有MCU的基础模块。 arm的VIC中断体 ...… 查看全部问答> |
|
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity decim_al2 isGeneric( num : integer range 0 to 1022 := 7; -- numerateur du rapport de decimatio ...… 查看全部问答> |
|
散分~系统启动速度提高一半了~俺用的是EP9315,64m的ram加32m的flash~,原来启动大概11秒,现在最多5秒~原因未明,待查找呵呵,心情不错,特来散分~… 查看全部问答> |
|
我刚开始上班,好多东西都不懂,经理把板子给我了.让我自己弄. 问其他同事,他们都说忙,好郁闷呀! 主机,ARM9开发板,ADS1.2集成开发环境,JTAG仿真器.都有了. 我下一步该做什么. 如果直接用Tornado 2.2 for pcPentium,然后和目标机这样连接可以吗? ...… 查看全部问答> |
|
只有一块空板,我什么芯片,元器件都没,书上有说哪里放什么器件,怎么放...开始买书的时候以为送的是完整的PCB开发板,还想照着书上的例子做做实验的,求大侠指点!!!… 查看全部问答> |
|
转让FREESCALE DSP56F807开发板 - 450元 去年在北京通特科技有限公司买的,我们公司是做电力系统保护的,本来是想把这款DSP好好研究下的,因为在电力系统中这款DSP用的比较多,后来因为赶上别的项目,换成了STM32F ARM7平台,所以就一直没时间弄了,只弄了不到一个星期,基本上是崭新的 ...… 查看全部问答> |
|
大惊喜!在EEWORLD的申请下,LaunchPad加送触摸板啦!! 各位参加“EEWORLD大学堂TI教室”认真学习并拿到LaunchPad的童鞋们,你们一定惊喜的发现还有一个触摸板在上面吧! 是个,这就是大惊喜! 由于你们的认真学习,不仅是我们能够看到的,反馈给TI同样也可以看得到!不仅我们感动,TI也很感动。 在EE ...… 查看全部问答> |




