历史上的今天

今天是:2024年11月18日(星期一)

2019年11月18日 | STM8S——8位基本定时器(TIM4)

发布者:technology1 来源: 51hei关键字:STM8S  基本定时器  TIM4 手机看文章 扫描二维码
随时随地手机看文章

简介:该定时器由一个带可编程预分频器的8位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。


主要功能:


(1)8位向上计数的自动重载计数器;


(2)3位可编程的预分配器(可在运行中修改),提供1、2、4、8、16、32、64、128这8种分频比例;


(3)中断产生:更新中断(溢出,计数器初始化)。


代码实现:

 1 /* Includes ------------------------------------------------------------------*/

 2 #include "stm8s.h"

 3 

 4 /* Private define ------------------------------------------------------------*/

 5 #define TIM4_PERIOD       124

 6 /* Private variables ---------------------------------------------------------*/

 7 __IO uint32_t TimingDelay = 0;

 8 /* Private function prototypes -----------------------------------------------*/

 9 void Delay(__IO uint32_t nTime);

10 void TimingDelay_Decrement(void);

11 static void TIM4_Config(void);

12 

13 /**

14   * @brief  Main program.

15   * @param  None

16   * @retval None

17   */

18 void main(void)

19 {

20   /* TIM4 configuration -----------------------------------------*/

21   TIM4_Config();    

22   

23   /* Insert 50 ms delay */

24   Delay(50);

25   }

26 }

27 

28 /**

29   * @brief  Configure TIM4 to generate an update interrupt each 1ms 

30   * @param  None

31   * @retval None

32   */

33 static void TIM4_Config(void)

34 {

35   /* TIM4 configuration:

36    - TIM4CLK is set to 16 MHz, the TIM4 Prescaler is equal to 128 so the TIM1 counter

37    clock used is 16 MHz / 128 = 125 000 Hz

38   - With 125 000 Hz we can generate time base:

39       max time base is 2.048 ms if TIM4_PERIOD = 255 --> (255 + 1) / 125000 = 2.048 ms

40       min time base is 0.016 ms if TIM4_PERIOD = 1   --> (  1 + 1) / 125000 = 0.016 ms

41   - In this example we need to generate a time base equal to 1 ms

42    so TIM4_PERIOD = (0.001 * 125000 - 1) = 124 */

43 

44   /* Time base configuration */

45   TIM4_TimeBaseInit(TIM4_PRESCALER_128, TIM4_PERIOD);

46   /* Clear TIM4 update flag */

47   TIM4_ClearFlag(TIM4_FLAG_UPDATE);

48   /* Enable update interrupt */

49   TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

50   

51   /* enable interrupts */

52   enableInterrupts();

53 

54   /* Enable TIM4 */

55   TIM4_Cmd(ENABLE);

56 }

57 

58 

59 /**

60   * @brief  Inserts a delay time.

61   * @param  nTime: specifies the delay time length, in milliseconds.

62   * @retval None

63   */

64 void Delay(__IO uint32_t nTime)

65 {

66   TimingDelay = nTime;

67 

68   while (TimingDelay != 0);

69 }

70 

71 /**

72   * @brief  Decrements the TimingDelay variable.

73   * @param  None

74   * @retval None

75   */

76 void TimingDelay_Decrement(void)

77 {

78   if (TimingDelay != 0x00)

79   {

80     TimingDelay--;

81   }

82 }

关键字:STM8S  基本定时器  TIM4 引用地址:STM8S——8位基本定时器(TIM4)

上一篇:stm8s_iwdg(独立看门狗)
下一篇:STM8S 中断唤醒,定时唤醒,窗口看门狗

推荐阅读

下一代机器学习技术为BlackBerry技术组合提供全面补充集成后BlackBerry解决方案将成为业界首款可实现智能保护固定和移动终端的产品嵌入式人工智能技术将加速BlackBerry Spark 企业物联网平台的发展 BlackBerry今日宣布已签订最终协议,将斥资14亿美元现金以及承担未兑现的员工激励,全面收购人工智能和网络安全领军企业Cylance。该交易还需获得监管部门批...
单片机源程序如下:#include "delay.h"#include "12864.h"#include "fun.h"#include "key.h"#include "wakeup.h"u8 func_index=0;void (*current_operation_index)(); //执行当前显示函数typedef struct { u8 current; //当前状态号 u8 up;//向上翻索引号 u8 down;//向下翻索引号 ...
1. 引言:电驱噪音的现状和目标电动车由于动力总成改变,进排气取消,新增动力电池模块等改变,其车内噪声也明显变小: 电动车车内噪声变小,是否 NVH 得到了改善? 车身+底盘方面: 车身结构分布变化、声学包分布变化 底盘刚度增加、轮胎抗冲击要求增加 风噪/路噪问题凸显 动力总成方面:动力总成从传统内燃机更换为电驱动 系统,总噪声值变小 ...
随着新一代骁龙旗舰处理器发布的临近,外界对小米12的关注度同样大大增加。  最新爆料称,小米12系列其中三款代号曝光,其中,小米12 Pro代号Zeus(宙斯),小米12 Ultra代号Loki(洛基),小米12 Ultra增强版代号Thor(雷神索尔)。  对于首次出现的小米12 Ultra增强版,有两种猜测,一种是小米12 Ultra徕卡特别定制版,也就是影像表现...

史海拾趣

问答坊 | AI 解惑

门禁电锁基本知识

摘要:门禁用的电锁是门禁系统的重要组成部分,是门禁系统的执行机构和关键设备,如果把门禁系统比做一个人的话,电锁就好比人的手和脚,关系着整个门禁系统的稳定性。如果一个门禁系统控制器和读卡器都不错,如果电锁的质量有问题,同样会引起门打 ...…

查看全部问答∨

占空比的疑惑

我们都知道在CCM模式下 反激变换公式: Vo=(Ns/Np)*Vin*D/(1-D) 正激变换公式: Vo=(Ns/Np)*Vin*D 从上面公式可以得出输出的电压Vo和D有关系,和负载大小没有关系,可以这样理解吗? 如果是这样,当负载突然加重的时候,那么控制器调的是什么呢? 如果 ...…

查看全部问答∨

招聘:助理研究员或博士后1-2名

招聘:助理研究员或博士后1-2名,条件如下: 1、        数字信号处理、电子或相关专业,博士毕业。 2、        具有3年或以上嵌入式系统设计经验,精通XILINX或ALTERA 等厂家FPGA芯片的结构和设计流程 ...…

查看全部问答∨

选择什么样的arm9开发版来入门?

大家好,小弟有m3的开发经验,现在想进军arm9领域,感觉应该是买2440吧,无奈市面上2440的开发板比那璀灿的繁星还要多。。。所以呢,想请教一下各位大侠,究竟哪一款的2440开发板比较适合入门者,性价比右比较高的呢??…

查看全部问答∨

这几句汇编编译后是什么样的?

;bit-addressable byte RAM BRAM   SEGMENT DATA     BITADDR           RSEG    BRAM status:        DS      1 ...…

查看全部问答∨

求帮助,有关DSP2407的CAN发送接受。在线等。

本人做一个DSP2407的CAN发送和接受,程序是论坛下过来稍微有改过的。在CANBX4赋值之后请求发送,可程序一直停在判断发送成功标准位,我用示波器测量了CANTX/IOPC6端口并没有电平变化。有谁能指点下吗?是我程序错了,还是硬件有问题。麻烦大神帮我 ...…

查看全部问答∨

加密IC

大家好!我是新人!想了解一下加密IC!能不能给与我一些帮助!或者有用的一些学习资料!谢谢大家!…

查看全部问答∨

下降沿触发是什么含义,为什么我设置下降沿触发launchpad为什么还是按键弹起才触发?

#include"io430.h" #include"intrinsics.h" int main(void)     {        WDTCTL=WDTPW+WDTHOLD;//禁止看门狗计数        P1DIR=0x41;        //    ...…

查看全部问答∨

关于adc

问个东西,是否可以这样在,先adc1_channel1工作1分钟,然后切换到adc1_channel2工作1分钟,再切换到adc1_channel2工作1分钟,不停的循环往复,希望可以看到源代码,我那边有份错误的代码,至少没有得到应该的数据,方面的话可以交流一下,我qq 109 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved