博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM8S定时器工作
阅读量:7028 次
发布时间:2019-06-28

本文共 799 字,大约阅读时间需要 2 分钟。

  TIM4是一个8位通用定时器,TIM4工作时,其计数器从0开始向上计数,计数到TIM4_ARR寄存器中设置的值时,计数器从新从0开始计数,同时产生一个计数器溢出事件。

程序实例

void main(void)

{

  InitLED();

  InitTIM4();

  asm("ris");

  TIM4_CR1 |= 0X01;

   while(1){}

}

InitTIM4();为 TIM4 初始化函数,起作用是设置 TIM4 的相关寄存器,使 TIM4 每隔一段时间产生一

次溢出中断。其函数内部如下:
void InitTIM4(void)

{

  TIM4_PSCR = 0X07;//分频2M/2^7=15.625K

      TIM4_IER = 0X01;//更新中断使      TIM4_CNTR = 255;//计数器初值 ,255*(1/15.625K)=0.01632S

  TIM4_ARR = 255;//自动重装的值

}

TIM4_PSCR = 0X07;//分频2M/2^7=15.625K表示设置定时器的时钟频率,在定时器完成一个周期则计数器就增加1一直增加到255就自动返回0,然后产生一个中断事件

#pragma vector=TIM4_OVR_UIF_vector //定义中断服务函数入口地址

__interrupt void TIM4_OVR_UIF__IRQHandler(void)
{
  i++;
  TIM4_SR=0x00; //清除中断标志
  if(i==61)
  { //翻转 LED 接口的输出状态
    PC_ODR_ODR3^=1;
    PE_ODR_ODR0^=1;
    PD_ODR_ODR3^=1;
    i=0;
  }
}

转载于:https://www.cnblogs.com/xiangxiangyuan/p/4644294.html

你可能感兴趣的文章
在多线程环境下使用HttpWebRequest或者调用Web Service(连接报超时问题)
查看>>
Windows Live Write 日志客户端
查看>>
把123456789转换为12-345-6789的三种方法
查看>>
Mysql选择合适的存储引擎
查看>>
URAL 1225 Flags
查看>>
UVa 11172 - Relational Operator
查看>>
UVa 10179 - Irreducable Basic Fractions
查看>>
日常会议
查看>>
SCP,SSH应用
查看>>
The first day to learn Englisht
查看>>
第二章 单表查询 T-SQL语言基础(1)
查看>>
C#中给RichTextBox加上背景图片
查看>>
竞赛准备篇---(四)子集生成
查看>>
JQuery判断复选框是否有选中
查看>>
ng之{{value}}顺序
查看>>
MSSQL 调用 .net 代码
查看>>
设计模式系列——单例模式 享元模式
查看>>
Web.xml详解(转)
查看>>
二分查找系列
查看>>
The Clocks
查看>>