定时器中断

1. stm8l152定时器分为高级定时器,通用寄存器,和基本定时器,本实验用的是基本定时器TIM4,时钟频率默认为HSI/8。

2. 本实验设计为利用定时器中断实现led灯的闪烁。

  GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_High_Slow);
  
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4, ENABLE);//使能定时器时钟
  TIM4_TimeBaseInit(TIM4_Prescaler_16384, 0);//配置定时时间
  TIM4_ITConfig(TIM4_IT_Update, ENABLE);//开启定时器中断,从0开始计数,计数到0产生更新事件
  TIM4_Cmd(ENABLE);//使能定时器4
  enableInterrupts();//使能中断
  
  while (1)//必须要加死循环,从而实现多次中断
  {
  }


INTERRUPT_HANDLER(TIM4_UPD_OVF_TRG_IRQHandler,25)//定时器中断服务函数
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */
  GPIO_ToggleBits(LED_GPIO_PORT, LED_GPIO_PINS);
  TIM4_ClearITPendingBit(TIM4_IT_Update);//清除中断标志位
}


3. 定时器4固定设置为向上溢出,计数到设置的值后,就产生更新事件,计数清零。

4. 怎样计算定时时间? 如果定时时间长度达不到要求,可以在多中断几次,在中断服务函数里面设置一个计数,计数到了再执行自定义行为。

http://blog.csdn.net/bagboy_taobao_com/article/details/46918835

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值