历史上的今天
返回首页

历史上的今天

今天是:2024年12月27日(星期五)

正在发生

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

2019-12-27 来源:eefocus

简介:该定时器由一个带可编程预分频器的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 }


TIM4


推荐阅读

史海拾趣

EPCOS (TDK)公司的发展小趣事

自成立以来,EPCOS一直致力于技术创新和产品拓展。公司不断投入研发资源,开发出了一系列高性能、高品质的电子元器件产品。这些产品广泛应用于通信、消费、汽车和工业电子等领域,赢得了众多客户的信赖和好评。同时,EPCOS还积极拓展国际市场,与全球众多知名企业建立了长期稳定的合作关系。

BSI公司的发展小趣事

在电子行业的初期,由于缺乏统一的标准,各种电子产品之间的兼容性和互通性成为了一个大问题。这时,BSI作为国际标准化组织的重要参与者,积极推动了电子产品的标准化工作。通过与各国政府、行业协会和企业的合作,BSI制定了一系列电子产品的标准,为行业的发展提供了可靠的参考依据。这些标准的出台,极大地促进了电子产品的互通性和兼容性,推动了电子行业的健康发展。

GREATECS公司的发展小趣事

随着电子产品的普及和消费者对产品质量的关注,电子产品测试和认证成为了一个必不可少的环节。BSI作为全球知名的认证机构,为电子产品提供了专业的测试和认证服务。通过严格的测试和认证流程,BSI确保了电子产品符合国际标准和客户需求,提高了产品的市场竞争力和信誉度。同时,BSI还为企业提供了定制化的商检解决方案,帮助企业在国际贸易中解决技术和法规问题,降低了贸易风险。

优先(苏州)半导体公司的发展小趣事

宝士曼第三代半导体研发生产项目位于苏州东山大道旁,占地50亩,计划建设生产、研发、办公等楼宇。项目整体将分二期建成,总建筑面积约70000平方米。已经封顶的4号楼建筑面积超11600平方米,主要用于第三代半导体器件专用封装设备的研发生产。在施工过程中,宝士曼对环保和施工细节提出了更高的要求,要求地面每5平方米的高度误差要小于3毫米,并在施工中做到“工完场清”,最大程度减少对今后生产的影响。这种对细节的严格要求体现了宝士曼对产品质量和环保责任的重视。

Digilent公司的发展小趣事

DIALIGHT在工业LED照明领域取得了显著成就。公司专注于为工业应用设计集成系统,以减少安装和维护的复杂性,并确保产品在恶劣条件下持续稳定运行。此外,DIALIGHT的LED产品旨在提供优越的运行性能、可靠性和耐久性,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。

Electronic Sensor + Resistor GmbH公司的发展小趣事

在ESR公司的发展历程中,技术突破是推动其不断前进的重要动力。公司投入大量资源用于研发,不断推出具有创新性和竞争力的新产品。其中,一款基于纳米技术的微型传感器成为市场上的明星产品,其高精度、低功耗和快速响应的特性受到了用户的广泛好评。

此外,ESR公司还注重与高校和研究机构的合作,共同开展前沿技术的研发。这种产学研合作模式不仅为公司带来了源源不断的技术创新,也为公司培养了一批高素质的研发人才。

问答坊 | AI 解惑

51单片机IO端口操作的一个有趣现象

我想实现P1.1端口跟随P1.4端口同步输出,都是驱动LED,P1.4端口使用定时器定时翻转,主循环程序随时判断P1.4状态,同步驱动P1.1。  开始我是这样写的:   看来没问题,在KEIL仿真运行也没问题,可是下载到89S52中,只见OUT闪烁,LED根本不动, ...…

查看全部问答>

贡献一些ARM开发板原理图

2440的就不用贡献了,传下S3C2450开发板的原理图 [ 本帖最后由 open82977352 于 2010-1-12 18:43 编辑 ]…

查看全部问答>

【藏书阁】 集成电路(荒井英甫)——21世纪大学新型参考教材系列

目录: 集成电路a 1 集成电路的学习方法 1·1 集成电路的发明 1·2 集成电路发展的动力 1·3 集成电路的未来 1·4 本书的构成 练习题 引用文献 2 集成电路中的半导体器件 2·1 pn结 2·2 双极型晶体管 2·3 mos晶体管 2·4 集成电路 ...…

查看全部问答>

现代功率模块及器件应用技术(6).

现代功率模块及器件应用技术(6).…

查看全部问答>

REMAP、Bootloader、Flashloader

  1、REMAP:    提到REMAP。首先应想到什么是MAP,英语不好,开始就断章取义,MAP就是地图嘛,Memory Map就是存储器地图,不过这个地图的参考坐标不是经纬度,而是地址,进而叫做存储器映射。由于要适应不同存储器容量要求的 ...…

查看全部问答>

我彻底的无奈了!

大家好:最近做一个GPRS收发短信的实验,接收短信后解析出号码和内容,然后回复给该手机需要的内容, 但是老是出现问题,可以解析出号码和内容,请高手帮忙看一下啊,MC39i的模块。 while( 1 )    {  //发送数据   &n ...…

查看全部问答>

上海环旭电子综合情况如何?

请问有了解上海环旭电子股份有限公司的具体情况的大侠没?请教下这个公司的工作环境,待遇(本科两年经验),面试的测试课长,谢谢……!…

查看全部问答>

驱动中怎么让一个程序每隔一段时间执行一次??

比如每隔一分钟执行一次,我是CreateThread,然后再线程中sleep,可感觉有些问题。 应该怎么做,有定时器之类的吗?…

查看全部问答>

哪里有windows CE 5.0(platform builder 5.0)??

google了好久,都没找到windows CE 5.0下载。 不知道各位谁有这个东西,或者知道哪里有这个下载。 如果谁有的可以传给我就更好了。 请加我 QQ:46231244 谢谢…

查看全部问答>

IAR_EW430使用入门

IAR_EW430的使用贴,是我学习时找到的资料…

查看全部问答>