历史上的今天
今天是:2025年01月06日(星期一)
2020年01月06日 | STM8学习笔记---定时器 TIM4功能实现
2020-01-06 来源:eefocus
STM8单片机的TIM4和TIM6是8位基本定时器。
定时器功能如下:

基本定时器的功能比较简单,一般只用来实现定时功能。

基本定时器的寄存器也比较少。此处用定时器4测试,TIM4初始化代码如下:
void Timer4_Init( void )
{
TIM4_PSCR = 0x07; //2^7=128 分频 16M/128=125K
TIM4_SR = ( ~0x01 ); //清除更新中断标志
TIM4_ARR = 125; //1ms
TIM4_CNTR = 0;
TIM4_CR1 |= 0x01; //使能计数器
TIM4_IER |= 0x01; //更新中断使能
}
首先设置预分频器,STM8默认使用的是内部16MHz晶振,设置预分频寄存器值为7,定时器4的频率为 16M / ( 2^7 ) = 125KHz,下来设置自动重装载寄存器ARR,TIM4是8为定时器,所以自动重装载值最大只能为255,此处设置为125,定时器4的定时时间就为125K/125=1ms。下来使能计数器,开启定时器中断。这样定时器4的初始化工作就完成了。
下来实现定时器中断代码
#pragma vector = 25 // IAR中的中断号,要在STVD中的中断号上加2
__interrupt void Timer4_Handle( void ) //1ms 定时中断
{
TIM4_SR = ( ~0x01 ); //清除更新中断标志
time_cnt++;
if(time_cnt>999)
{
time_cnt = 0;
LED = !LED;
}
}
进入中断后,首先清除中断标志位。然后统计中断次数,1ms中断一次,当时间累积为1000ms时,将LED口电平取反。这样就用定时器4实现了1s钟LED灯闪烁一次的效果。
史海拾趣
|
@@MAX7132学习板电路图完整版 https://bbs.eeworld.com.cn/thread-50800-1-1.html@@ @@EP2C学习板原理图 https://bbs.eeworld.com.cn/thread-72861-1-4.html@@ @@ ...… 查看全部问答> |
|
【转】电子设计竞赛经验汇总(11楼以后更新获奖团队的成功感言) 本帖最后由 paulhyde 于 2014-9-15 03:22 编辑 竞赛时应该注意的问题: 1、软件与硬件电路最好是同时做,不要前几天都在搞软件,等到最后才来焊板,到时如果出问题都没时间改了,我参加时就是遇到了这种情况。要么也可以在面包板实践下,有人可 ...… 查看全部问答> |
|
再好几个论坛发帖,没人鸟窝 首先说明一下问题 我用的是ad 08 在画一个BGA封装的FPGA板子,看到别人在管脚中间放置焊盘,我也试着做,但是放置好以后,无法布线,老是连不上线,也不知道是什么问题,搜了半天,也没结果,就问问大家,谢谢… 查看全部问答> |
|
各位, 我在6410上调试三星opengl es的例子。 1.1 和2.0的 exe文件都可以正常运行,但调试三星带的源码时,初始化全部成功,但一运行到glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);时串口就会输出如下错误信息: Exception \' ...… 查看全部问答> |
|
高级软件开发工程师/软件QA. 职位要求: 1、计算机或相关专业本科及以上学历; 2、必需精通C/C++编程; 3、熟悉嵌入式软件开发原则,设计模式及调试技巧; 4、掌握嵌入式操作系统(如Linux, WinCE)平台上的系统及应用程序开发; 5、3年以上嵌 ...… 查看全部问答> |
|
7.在有限的IO中扩展按键数量 前面我们讲到两种多按键的处理方法,仔细观察可以发现,这两种处理方法都是基于多个IO的,也就是说有多少个IO我们就能扩展出多少个按键。如果我只有6个可用的IO,那么能不能实现多于6个按键呢?答案是肯 ...… 查看全部问答> |
|
我用的是5510的一块开发板,上面的codec用的是tlv320aic23,我的程序需要对外界输入的电压值进行判断,如果大于某幅度就怎样,这时候程序该怎样写这个判断语句,不知道模拟电压经codec转换后对应的关系 高手帮忙,不胜感激… 查看全部问答> |




