历史上的今天
返回首页

历史上的今天

今天是:2025年07月24日(星期四)

正在发生

2018年07月24日 | stm8 16位定时器TIM1

2018-07-24 来源:eefocus

第一步:TIM1概述

STM8S提供三种类型的 TIM 定时器:高级控制型(TIM1)、通用型(TIM2/TIM3/TIM5)和基本型定时器(TIM4/TIM6)。它们虽有不同功能但都基于共同的架构。此共同的架构使得采用各个定时器来设计应用变得非常容易与方便(相同的寄存器映射,相同的基本功能)。STM8S系列的定时器TIM1,TIM5和TIM6之间没有共享任何资源,但是它们可以TIM5/TIM6定时器的同步中的描述来同步和连接。在拥有TIM1,TIM2,TIM3和TIM4定时器的STM8S系列产品中,定时器是没有连接在一起的。


可以看到TIM1是可以向上、向下、向上/向下自动装载的。分频系数为1~65535之间的任意数值。 

预分频器的实现:

TIM1 的预分频器基于一个由16位寄存器(TIM1_PSCR)控制的16位计数器。由于这个控制寄存器带有缓冲器,因此它能够在运行时被改变。预分频器可以将计数器的时钟频率按1 到65536之间的任意值分频。计数器的频率可以由下式计算:fCK_CNT = fCK_PSC / (PSCR[15:0] + 1)。

预分频器的值由预装载寄存器写入,保存了当前使用值的影子寄存器在低位(LS)写入时被载入。需两次单独的写操作来写16位寄存器,高位(MS)先写。不要使用先写低位(LS)的LDW指令。新的预分频器的值在下一次更新事件到来时被采用。

对TIM1_PSCR寄存器的读操作通过预装载寄存器完成,因此不需要特别的关注。


第二步:配置TIM1

stm8的定时器属于stm8的一个外设,其时钟可以单独开启和关闭。我们需要使用TIM1,只需要把第七位置1即可。



由于系统主时钟选择的是HSI 8分频,即2MHz,所以TIM1计数器的频率可以由下式计算:fCK_CNT = fCK_PSC / (PSCR[15:0] + 1)。


向上计数时,当计数器从0计数到TIM1_ARR时,产生溢出。





第三步:具体实现


/*定时时间 = (TIM1_ARRL + 1) * 10ms */

void Timer1_init(void)

{

   CLK_PCKENR1 |= 0x80;  //打开TIM1时钟 = Fmaster = 2MHz

   asm("sim");             // 关全局中断

   TIM1_PSCRH = 0x4E; 

   TIM1_PSCRL = 0x20;    //时钟20000分频,2MHz/20000 = 100Hz = 10ms

   TIM1_ARRH=0;        //自动重装载

   TIM1_ARRL=9;

   TIM1_IER |= 0X01;  //允许更新中断

   TIM1_EGR |= 0x01;  //产生更新事件

   TIM1_CR1 |= 0x01;  //开计数器

   asm("rim");        // 开全局中断  是不是像51里面的EA = 1;O(∩_∩)O~

}

 

好了下面开始编写主函数和中断服务函数了。

int main( void )

{

  System_Init();

  Gpio_Init();

  Timer1_init(); //100ms中断一次

  while (1);

}

#pragma vector=TIM1_OVR_UIF_vector  //0x0D

__interrupt void TIM1_OVF_IRQHandler(void)

{

   TIM1_SR1=0x00;  //清除中断标志位 该位由软件清零

   PE_ODR^=0x20;   //PE5取反

}


打开头文件IOSTM8S105K4.h,在第4637行找到stm8的中断向量号Interrupt vector numbers;我们可以看见TIM1_OVR_UIF_vector中断向量号是0x0D。

我们看到TIM1的溢出中断向量号是11,这里的0x0D是13,为什么?我们再看上图表16中断映射表,里面的复位和软件中断是没有中断向量号的,IAR已经处理了,,要依次+2,所以这里我们使用的是0x0D 。


推荐阅读

史海拾趣

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

FSP TECHNOLOGY INC. 发展故事集

故事一:创立与初期发展

FSP Technology Inc.(全汉企业股份有限公司)成立于1993年,总部位于台湾。在创立之初,公司便专注于电源供应器的研发与生产,凭借其专业的技术团队和敏锐的市场洞察力,迅速在行业中崭露头角。当时,随着计算机技术的飞速发展,对稳定、高效的电源需求日益增长,FSP抓住了这一机遇,专注于提供高品质的电源产品,赢得了市场的初步认可。公司通过不断优化产品设计和提升生产效率,逐渐建立起一定的市场份额和品牌影响力。

故事二:技术创新与品牌拓展

进入21世纪后,FSP Technology加大了技术创新的投入,致力于研发更加高效、环保的电源解决方案。公司先后推出了多款符合国际能效标准的产品,如80 PLUS认证系列电源,这些产品凭借其出色的性能和稳定的品质,在市场上获得了广泛好评。同时,FSP也积极拓展国际市场,通过参加国际展会、建立海外销售网络等方式,将品牌和产品推向全球。这一时期,FSP的品牌知名度和市场占有率均实现了显著提升。

故事三:ODM/OEM业务的蓬勃发展

随着全球电子产业链的分工日益细化,FSP Technology积极调整业务结构,大力发展ODM/OEM业务。公司凭借强大的研发实力和灵活的生产能力,为众多国际知名品牌提供定制化的电源解决方案。这些合作不仅丰富了FSP的产品线,也进一步提升了公司的技术水平和市场竞争力。同时,通过与国际品牌的深度合作,FSP的品牌影响力也得到了进一步扩大。

故事四:绿色能源解决方案的推广

近年来,随着全球对环保和可持续发展的重视,FSP Technology积极响应时代号召,致力于推广绿色能源解决方案。公司结合自身的技术优势,开发了一系列高效、节能的电源产品,广泛应用于数据中心、通信基站、智能家居等领域。这些产品不仅降低了客户的运营成本,也为全球节能减排事业做出了积极贡献。FSP的绿色能源解决方案得到了市场的广泛认可,进一步巩固了其在行业中的领先地位。

故事五:持续研发与未来展望

面对日益激烈的市场竞争和不断变化的客户需求,FSP Technology始终保持对技术创新的热情与追求。公司不断加大研发投入,积极探索新的技术和应用领域,如边缘计算、5G通信、工业互联网等。同时,FSP也密切关注行业动态和市场趋势,灵活调整战略方向,确保在未来的发展中始终保持领先地位。展望未来,FSP将继续秉承“服务、专业、创新”的经营理念,为全球客户提供更加优质、高效的电源解决方案。

Changzhou Galaxy Century Microelectronics Co.,Ltd公司的发展小趣事

在发展过程中,银河微电积极寻求与行业内外的合作伙伴建立战略合作关系。通过与晶通半导体(深圳)有限公司等企业的合作,银河微电在技术研发、市场拓展等方面取得了显著成效。这些战略合作不仅提升了公司的综合实力,还为公司的未来发展奠定了坚实的基础。

辰颐电子公司的发展小趣事

作为一家有社会责任感的企业,辰颐电子始终关注环境保护和社会公益事业。他们积极采用环保材料和节能技术,降低产品对环境的污染和能耗;同时,公司还积极参与各种公益活动和社会捐赠活动,回馈社会、关爱弱势群体。这些举措不仅提升了公司的社会形象和品牌价值,也为公司的可持续发展奠定了坚实的基础。

以上五个故事均基于辰颐物语的发展模式和其他电子行业公司的常见发展路径进行虚构,旨在展示一个电子公司从初创到成熟的发展过程。请注意,这些故事并非真实事件,仅供参考。

CAMBION公司的发展小趣事

随着国内市场的饱和,CAMBION公司开始将目光投向海外市场。公司制定了详细的国际化战略,通过设立海外研发中心、拓展销售渠道等方式进入国际市场。在国际化过程中,CAMBION公司不仅面临着文化差异、法律法规等挑战,还需要与众多国际知名企业竞争。然而,凭借卓越的技术实力和灵活的市场策略,CAMBION逐渐在国际市场上占据了一席之地。

Electromagnetic Industries Llp公司的发展小趣事

EMI公司成立于20世纪80年代初,当时正值电子行业的快速发展期。创始人李先生凭借对电磁技术的深厚理解和市场洞察,决定投身电磁产品的研发与生产。初创时期,公司面临着资金短缺、技术难题和市场认可度低等多重挑战。然而,李先生和他的团队并没有放弃,他们通过夜以继日的研发,不断攻克技术难关,同时积极寻找合作伙伴,拓展销售渠道。经过几年的努力,EMI公司逐渐在市场上站稳了脚跟。

Greenliant公司的发展小趣事

面对能源转型的挑战,GPS在2015年转型为智能电网解决方案的提供商。公司研发了一套集数据采集、监控、分析和优化于一体的智能电网平台,帮助电力公司提高运营效率,减少能源浪费。该平台通过实时监测电网状态,预测电力需求,并自动调整供电策略,实现了电网的智能化管理。GPS的智能电网解决方案在全球多个国家和地区得到应用,成为推动能源转型的重要力量。

问答坊 | AI 解惑

有关电源的资料 很全的

本帖最后由 paulhyde 于 2014-9-15 09:39 编辑 这里面是我最近搜到的不少电源的资料 感觉有用的来看看吧  …

查看全部问答>

SDRAM的检测

各位英雄:      我的PDA系统基于PXA255+WCE4.2平台,硬件上有128M的SDRAM连接,但是现在系统只能使用64M的SDRAM作为内存,如果修改内存为128M,系统无法启动。初步分析,或者硬件上出现问题,即硬件上有64M的SDRAM是坏的;或 ...…

查看全部问答>

Ardence RTX 进程通信的问题

      刚开始学习Ardence RTX没多久,现在在看进程通讯,试着编了两个简单的程序(都是在VC ++ 6.0下编的):一个用 RTX Driver Wizard向导写了一个RTSS进程,主要是建立一些信号量和一个共享内存;另一个是用Win32 Console A ...…

查看全部问答>

高速USB数据采集系统的设计

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 在图像处理、瞬态信号测量等一些高速、高精度的应用中,需要进行高速数据采集。USB 2.0接口以其高速率等优点渐有取代传统ISA及PCI数据总线的趋势,热插拔特性也使其成为各种PC外设的首选接口。 ...…

查看全部问答>

新手求助

请教各位大侠一个问题。本人用普通IO口做一路PWM信号,由于频率在比较高,且要可调脉宽(256档),所以想把PWM的输出做在基准定时的中断服务程序里。程序如下: @far @interrupt void TIM6_UPD_OVF_TRG_IRQHandler(void) { unsigned char ...…

查看全部问答>

用两片单片机实现红外遥控

最近在搞红外遥控,我想用两片单片机实现,一个作为发射,一个作为接收,感觉好多程序都差不多,没多少区别,但经过修改总不出结果,有做这方面的高人个指点下,谢谢!…

查看全部问答>

这里有人画过4层板的吗?趁着这国庆期间··我想练习下画4层板啊

漫漫长假不知道干嘛好··哪位大侠有画4层板的电路图呢··给我共享一份吧··小女子在次谢过啦··…

查看全部问答>

富士通FM3板子JP2啥意思啊?

今天,看了下原理图发现,JP2写的是5V或3.3V,不明白啥意思。请大家讲讲。 附部分原理图及说明截图。   …

查看全部问答>

stm32中断优先级

紧急求助。 stm32中断优先级必须配置吗? 用到的是usart1,usart2和uart4,数据发送过快,程序很容易跑飞,连中断也进不去了。 工程用的寄存器配置的,没有用库函数。 求助各位大神,uart的中断优先级如何配置。 看了一下权威指南,还是不知道 ...…

查看全部问答>

PCB拼板探讨

最近有需用到PCB拼板,在网上也找了一些资料,用Edit—>Paste Arry,可拼出单行(列)多块,但如何拼出多行多列(如3行2列),另还有一些其他技巧如拼阴阳板等?拼出的板如何旋转移动?有这方面资料也可发至邮箱1010032296@qq.com,欢迎各位指点迷津 ...…

查看全部问答>