STM8S定时器工作

最新更新时间:2021-10-20来源: eefocus关键字:STM8S  TIM4 手机看文章 扫描二维码
随时随地手机看文章

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;
  }
}


关键字:STM8S  TIM4 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic551905.html

上一篇:STM8S定时器的使用 - stm8s定时器tim4使用方法解析
下一篇:STM8Lpwm

推荐阅读

STM8S单片机红外接收解码程序 带1602显示
这几天在网上找了很多关于红外接收解码的程序,但都不是很理想。一般都是用延时来作为0和1的数据,或者注释不是很详细的,所以自己鼓捣了一个。本程序是采用外部中断加定时器1来实现红外解码,STM8S单片机ABCD口都可作为外部中断,使用的遥控器为市面上大多数的。需要的朋友们可以作为参考。制作出来的实物图如下:效果图单片机源程序如下:/***************可识别用户码 解码成功后显示在1602并LED闪烁一次*****************/#include "iostm8s208mb.h"//主控芯片的头文件#define u8  unsigned char#define u16
发表于 2021-11-25
<font color='red'>STM8S</font>单片机红外接收解码程序 带1602显示
STM8S驱动OLED12864
这种OLED的液晶屏似乎很受电子爱好者的欢迎,原因大概是:①这种屏小巧玲珑,同样是128*64点阵的液晶屏,这种屏的体积比以前那种LCD12864小了四分之一,作为DIY手表的屏幕刚刚好。②功耗低,由于OLED是有机发光材料制作成的,没有使用背光,所以功耗比使用LED作为背光的液晶屏,功耗要低很多。所以这块液晶屏适合用于手表之类的手持设备。③可以选择的接口很多。接口和使用的液晶屏驱动芯片有关,大多数OLED12864使用的驱动芯片是SSD1306,这款驱动芯片提供给MCU的接口有5种,如下图。本文使用I2C接口来驱动OLED,主要是因为I2C占用MCU的IO少,当然用SPI接口驱动OLED的也很多。使用I2C接口时,D0脚作为I2C
发表于 2021-11-25
<font color='red'>STM8S</font>驱动OLED12864
stm8 stm8s stm8af 485接口 modbus协议代码
本人使用stm8af62a6,stm8s和stm8af大多数是互通的,只用一个库函数62a6只能使用uart3!485接口是硬件,不需要管,任何硬件接线都可以实现代码见附件,已实现通信主函数代码,主要为初始化函数,以及modbus帧接收处理函数,帧接收处理按自己的需求自行修改,本例的处理函数为接收数据再多输出一点数据单片机源程序如下:/******************************************************************mian.c文件部分******************************************************************/void
发表于 2021-11-12
STM8S学习笔记之三(STM8 SysClk)
STM8S系统时钟设置,对于单片机来说是非常重要的,不同的用处必须应用不同的时钟。。举个例子,做AVR时在高稳定的串口通讯时用的时钟一般是3.6864M,主要是这个算波特率精确。。STM8S同样重要。STM8S时钟源:●1-24MHz高速外部晶体振荡器(HSE)●最大24MHz高速外部时钟信号(HSE user-ext)●16MHz高速内部RC振荡器(HSI)●128KHz低速内部RC(LSI)各个时钟源可单独打开或关闭,从而优化功耗。对于我这么懒得人一般都是用的内部或者外部晶振。。这个芯片时钟方面很大的一个亮点就是时钟可以自由分频。在降低功耗方面,如果有特殊需求的时候还是考虑STM8L系列或者430的吧,不得不承认术业有专攻
发表于 2021-11-10
STM8S定时器的使用 - stm8s定时器tim4使用方法解析
  stm8s定时器TIm4概述  该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。  TIM6同时钟信号控制器用于定时器同步和级联。  STM8通用定时器TIM4的主要功能  TIM4功能包括:  1、8位向上计数的自动重载计数器;  2、3位可编程的预分配器(可在运行中修改),提供1,2,4,8,16,32,64和128这8种分频比例。  3、中断产生  –在计数器更新时:计数器溢出  STM8通用定时器TIM4功能概述    (TIM4框图 )  中断  通用定时器包括2个中断源:  更新中断(溢出,计数器初始化);  触发信号输入(仅TIM6可用)  STM8S定时器的使用  环境
发表于 2021-10-20
STM8S定时器的使用 - stm8s定时器<font color='red'>tim4</font>使用方法解析
51单片机-定时器工作模式2
1.工作模式2的使用这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。我们想实现间隔51ms的流水灯实验该怎么做,首先我们定义一个变量cnt用来记录每次的溢出次数,然后我们的定时时间为51微秒(因为最大定时只有278微秒),cnt记录的值等于1000的时候,证明时间已经过去了51ms,于是再去执行流水灯的任务。我们已经知道工作模式2是不需要在溢出之后再填充初始值的,比如我们定时的时间为51微秒,那么计算出“距离溢出的刻度”就为47(实际计算出的是47.0016
发表于 2021-08-24
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved