历史上的今天
返回首页

历史上的今天

今天是:2025年04月25日(星期五)

正在发生

2020年04月25日 | STM8S——8位基本定时器(TIM4)

2020-04-25 来源: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


推荐阅读

史海拾趣

Heraeus公司的发展小趣事

Heraeus公司作为一家历史悠久的德国化学与科技公司,在电子行业的发展过程中积累了众多令人瞩目的故事。以下是五个与Heraeus公司在电子行业中发展起来的相关故事,每个故事均基于事实描述:

1. 从黄金冶炼到电子科技的转型

Heraeus始建于1851年,最初专注于黄金冶炼,这一历史深厚的背景为其在科技领域的拓展奠定了坚实的基础。随着电子工业的兴起,Heraeus敏锐地捕捉到了市场变化,逐步将业务扩展至电子科技领域。这一转型不仅展示了Heraeus的战略眼光,也体现了其在材料科学和技术创新方面的深厚底蕴。通过不断研发新技术、新产品,Heraeus在电子元件、特殊包装和传感器等领域取得了显著成就,成为电子行业的重要供应商之一。

2. 精密精细加工材料的突破

在电子科技领域,Heraeus以其精密精细加工材料而闻名。这些材料在制造高性能电子元件中发挥着关键作用。例如,Heraeus的薄膜材料在半导体封装、电路板制造等方面得到了广泛应用。为了不断满足市场需求,Heraeus投入大量资源进行技术研发和产品创新,成功推出了一系列具有自主知识产权的高性能材料。这些材料不仅提高了电子产品的性能和质量,也推动了整个电子行业的发展。

3. 全球化布局与本地化服务

作为一家全球领先的科技公司,Heraeus在全球范围内拥有广泛的分支机构和服务网络。为了更好地服务本地客户,Heraeus在不同国家和地区设立了研发中心和生产基地,以提供更加贴近市场需求的产品和服务。在中国市场,Heraeus自1974年在香港设立机构以来,不断加大投资力度,扩大业务规模。目前,Heraeus在大中华区拥有多个生产和办公场所,为众多中国客户提供了优质的产品和服务。这种全球化布局与本地化服务的策略使得Heraeus能够在全球范围内保持竞争优势。

4. 技术创新与可持续发展

Heraeus始终将技术创新作为企业发展的核心驱动力。在电子科技领域,Heraeus不断推出新技术、新产品以满足市场需求。同时,Heraeus也注重可持续发展和社会责任。公司通过优化生产流程、提高资源利用效率等措施减少对环境的影响;积极参与慈善活动和社会公益事业;倡导环保理念并推动行业绿色发展。这些举措不仅提升了Heraeus的企业形象和社会声誉,也为其在电子行业的长期发展奠定了坚实的基础。

5. 应对行业挑战与机遇

近年来,电子行业面临着诸多挑战和机遇。一方面,全球市场竞争日益激烈,技术更新换代速度加快;另一方面,新兴技术的发展为电子行业带来了新的增长点。面对这些挑战和机遇,Heraeus凭借其深厚的技术积累和市场洞察力,不断调整战略方向、优化产品结构、提升服务质量以应对市场变化。同时,Heraeus也积极寻求与产业链上下游企业的合作机会以实现共赢发展。这些努力使得Heraeus在电子行业中始终保持着领先地位并不断向前发展。

Harris公司的发展小趣事

二战后,随着全球经济的复苏和电气产品的爆炸性需求,Hammond迎来了前所未有的发展机遇。在1950年代和1960年代,Hammond积极扩展产品线,成为变压器、机架、机柜以及电气和电子行业外壳的领先供应商。同时,公司还进行了多次战略性收购,进一步巩固了其在北美电气OEM市场的地位,成为磁性材料的主要供应商之一。

Exar公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,Exar公司始终坚持以创新为核心竞争力。公司不断投入研发资金,加强技术创新和产品研发力度,推出了一系列具有自主知识产权的新产品。同时,Exar还积极关注行业发展趋势和市场动态,不断调整和优化产品线,以适应市场的变化和发展。在未来,Exar将继续坚持创新驱动的发展战略,努力成为电子行业的领军企业。

请注意,以上故事框架仅供参考,具体的故事内容需要根据实际情况进行补充和完善。

Connector City公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保的要求也越来越高。Connector City公司积极响应国家环保政策,加强了对生产过程的环保管理。公司引进了先进的环保设备和技术,减少了生产过程中的废弃物排放和能源消耗。同时,公司还注重产品的环保性能设计,推出了多款符合环保标准的新型连接器产品。通过坚持绿色环保和可持续发展理念,公司赢得了社会的广泛赞誉和支持。

这五个故事仅是对Connector City公司可能发展路径的一种虚构描述,实际情况可能因市场变化、公司策略调整等多种因素而有所不同。在实际发展中,公司需要根据自身情况和市场环境做出灵活的调整和决策。

Dynawave Incorporated公司的发展小趣事

随着技术的成熟,Dynawave开始寻求市场拓展。公司高层决定,将目标市场锁定在智能家居和物联网领域。他们与多家知名厂商合作,将自己的无线传输技术应用到各类智能设备中。通过不断的技术优化和市场推广,Dynawave的产品逐渐得到了市场的认可,销售额稳步增长。

BOOKHAM公司的发展小趣事

随着电子行业的快速发展和技术的不断更新换代,BOOKHAM公司始终保持敏锐的市场洞察力和创新精神。公司不断投入研发资源,推出新产品和新技术,以适应市场的变化和满足客户的需求。同时,公司还注重产品质量和客户服务的提升,通过优质的产品和服务赢得了客户的信任和好评。这些努力使得BOOKHAM公司在激烈的市场竞争中始终保持领先地位。

以上是根据电子行业的一般发展情况和常见的企业发展模式虚构的关于BOOKHAM公司发展的故事。虽然这些故事是基于虚构的,但它们可能反映了BOOKHAM公司在实际发展中可能遇到的一些情况和挑战。

问答坊 | AI 解惑

嵌入式GSM短信息接口的软硬件设计

引 言   SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短 ...…

查看全部问答>

E题的方案

本帖最后由 paulhyde 于 2014-9-15 09:33 编辑 求助各位ggjj晒点淘汰的方案啊,写报告用的!!!!!!!!!!!!!! 凑字数啊  …

查看全部问答>

DM9000的ip可以任意设置么?

在DM9000所给的web例子中,设定DM9000的IP地址为: 172,20,24,42,然后将对接的PC的IP也设在该网段就行了,我想问的是,是不是DM9000的IP可以任意设置,只要保证同和它连接的PC的IP在一个网段就行了?…

查看全部问答>

关于max232CPE的小问题

我用了max232cpe做了个串口烧录器,主要烧录STC51单片机,但是就是不行,我在max232里看到max232周围的电容用的是1u的,max232A用的电容是0.1U的,我想问一下max232可以用0.1u的电容吗?我的就是无法烧录,你们谁有完整的线路图给我个,谢谢。…

查看全部问答>

pci2040+dsp无中断响应

我的dsp里设置HPIC寄存器为0x0B0B,即产生HINT中断,但用表测HINT脚一直是高电平。难道是要在HPI_CSR里的Interrupt Event Register和Interrupt Mask Register这两个寄存器进行相关设置?还是其他什么要设置?我调了一个礼拜了,还是老样子,现在快疯 ...…

查看全部问答>

为什么在WinCE上DirectDraw用不了?

我的开发环境是VS2005,用的是PocketPC2003, 代码如下: #include \"ddraw.h\" #pragma comment(lib,\"ddraw.lib\") ......     IDirectDraw* pclDirectDraw;     if (FAILED(DirectDrawCreate(NULL, &pclDirectDraw, N ...…

查看全部问答>

定时器a求助

各位兄弟 我写了一个简单的程序不能执行 在tt==20的地方,请教高手?谢谢 #include <msp430x14x.h> #define uint unsigned int #define uchar unsigned char uchar num,tt; uchar ta××e[]={ 0xc0,0xfc,0x24,0x4f, 0x66,0x6 ...…

查看全部问答>

初学FPGA (4)不完整条件语句与时序电路(EEFPGA学习计划)

…… BEGIN IF CLK’EVENT AND CLK=’1’   THEN Q1<=D; END IF; 不完整的条件语句:即在条件语句中,没有将所有可能发生的情况给出对应的处理方式。对于这种现象,VHDL综合器理解为:对于不满足的条件,跳过Q1<=D不执行,但是需要保 ...…

查看全部问答>

数码管显示

小弟初学!请求各位帮我一下。共阳数码管 module LED(data,sel);     output[7:0] data;   output[7:0] sel;    wire [7:0] data;wire [7:0] sel;assign sel=8\'b11111111;    //位 ...…

查看全部问答>

为什么不能单步执行左移右移的操作

如题,,,,我发现在单步执行的时候,有左移或者右移的命令都跳过去了。这是怎么回事呢??…

查看全部问答>