历史上的今天
今天是:2025年02月15日(星期六)
2020年02月15日 | STM8学习总结三:TIM1定时器使用
2020-02-15 来源:eefocus
本文主要总结关于STM8在库函数开发时,各条语句的含义。
(1)TIM1初始化配置函数
函数主要作用:对计数器的参数,工作模式进行设定,并使能;
void Tim1_Init(void)
{
TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,1000,0);
//(定时器频率:16分频即系统频率的1/16,为1M,向上计数,定时器溢出值,重装载计数从0开始)
TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);//中断配置与使能函数
TIM1_ARRPreloadConfig(ENABLE);//使能数值自动重装载功能
TIM1_Cmd(ENABLE);//开定时器
}
关于定时器溢出值的计算:定时器溢出值=预定定时时间(us)*定时器频率
(2)TIM1中断向量函数
函数主要作用:调用中断执行函数,并清除计数器标志位;
//中断向量函数
#pragma vector=0xD
__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{
Tim1_Execut();//调用中断执行函数
TIM1_ClearITPendingBit(TIM1_IT_UPDATE);//清除更新计数器标志位
}
(3)中断执行函数
函数主要作用:按照自己的需要进行计时,并调用执行相关功能函数;
注意计数变量要声明成static类型,这关系到计数变量的生命周期;
static u16 i=0;
void Tim1_Execut(void)
{
i++;
if(i==1000)
{
i=0;
Led_Revese();//功能函数
}
}
(4)注意主函数中一定要开启总中断
__enable_interrupt();
史海拾趣
|
最近在使用ADS1.2软件编写一个S3C2440的一个LED小程序,但是遇到了一个问题,如果像我们平时的写法: static int led_tab[4]={0xf7,0xef,0xdf,0xbf}; 他是不能正确地赋值的,(也就是此时的led_tab[]数组还是全为零的。 如果改成: &nbs ...… 查看全部问答> |
|
evc应用程序打不开我自己写的按键驱动。 HANDLE hReadKeyThread; //打开key驱动 hFile=CreateFile(TEXT(\"KEY:\"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0); &n ...… 查看全部问答> |
|
ARM926EJ-S 的spec. 说异常向量表要么放在0x00000000,要么放在0xffff0000. 这取决于cp15 的控制寄存器c1的设置。我设置相应位,以使向量表地址位于0x00000000. 但是,当我触发一个异常是CPU没有跳到这个向量表的相应位置的指令, 而是跳到了另一个 ...… 查看全部问答> |
|
恩智浦推出全球首款双电源电压ARM Cortex-M0微控制器 1.6 uA深度睡眠电流、5 us瞬间唤醒和超小尺寸,为创新嵌入式移动设计创造可能 中国上海,2012年2月21日 —— 恩智浦半导体NXP Semiconductors N.V. (NASDAQ:NXPI) 近日宣布推出LPC1100LV系列,这是全球首款支持1.65V至1.95V VDD ...… 查看全部问答> |
|
管中窥豹安防监控摄像机CCD SENSOR 和CMOS SENSOR 市场情况 前一段时间笔者有一个安防监控项目,了解一下安防监控摄像机CMOS SENSOR 代工厂情况。 网络上搜集的安防监控机CMOS SENSOR 工厂真是多如牛毛。偶搜集了十几家公司,一个一个的电话沟通。太 ...… 查看全部问答> |




