历史上的今天
返回首页

历史上的今天

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

正在发生

2020年04月25日 | STM8定时器实现精准延时(阻塞)

2020-04-25 来源:eefocus

定时器选择:

stm8定时器与stm32定时器略有不同,stm32定时器是24位--16,777,216,按照72M时钟8分频计算,周期达到1.86s左右,而stm8定时器是16/8--位65535/255,自身时钟为16M,即使16分频周期也远小于1s。


当前选择TIM2定时器,1分频,最大周期65536/16 约等于 4096us。


初始化

void TIM_Delay_Init()

{

    /* 自动重装载值范围TIM4为0~255,TIM2为0~65535*/

    TIM2_TimeBaseInit(TIM2_PRESCALER_1,65535);  //65535*(1/16)≈4095us

    TIM2_Cmd(DISABLE);                          //关闭定时器

}


延时函数

延时函数中最好采用寄存器操作,降低运算量,减小误差。


void TIM_Delay_us(uint16_t nus)

{

    uint16_t value = nus*16;

    

    TIM2->CNTRH = 0;                    //计算值清零

    TIM2->CNTRL = 0;

    TIM2->CR1 |= (uint8_t)TIM2_CR1_CEN; //开始计时

    

    while(TIM2_GetCounter() < value)

    {

        /*if(TIM2_GetFlagStatus(TIM2_FLAG_UPDATE))    //达到单次us最大延时时间

        {

            TIM2_ClearFlag(TIM2_FLAG_UPDATE);

            break;

        }*/

    };

    TIM2->CR1 &= (uint8_t)(~TIM2_CR1_CEN);//停止计时

}


结语

选择8位的定时器(TIM4)时,一分频时周期为16us,二分频时周期为32us,ms延时情况下则可以5/10/20us等作为延时周期,实现Delay_10us()、Delay_N_10us()等函数即可。

推荐阅读

史海拾趣

G-Mag Usa公司的发展小趣事

进入21世纪后,G-Mag意识到单一产品线难以满足市场多元化需求,于是开始实施并购扩张战略。2005年,G-Mag成功收购了国内一家领先的电子元器件制造商,这次收购不仅增强了G-Mag在供应链上的控制力,还为其带来了丰富的产品线和技术储备。随后几年,G-Mag又陆续完成了对多家在传感器、无线通信等领域具有优势企业的并购,逐步构建起了一个覆盖电子产业链上下游的庞大帝国。通过并购,G-Mag不仅实现了业务的快速增长,还巩固了其在电子行业中的领先地位。

Circuit Technology Inc公司的发展小趣事

随着国内市场的饱和,CTI开始将目光投向海外市场。公司制定了国际化发展战略,积极开拓国际市场。通过设立海外分支机构、参加国际展会等方式,CTI的产品逐渐打入国际市场,并获得了良好的口碑。同时,公司还与国外企业开展技术合作和产品研发,进一步提升了公司的国际化水平。

Enable Semiconductor Corp公司的发展小趣事

Enable Semiconductor Corp公司深知人才是企业发展的核心动力。因此,公司一直注重人才的引进和培养。公司拥有一支高素质、专业化的研发团队和管理团队,他们具备丰富的行业经验和创新精神。同时,公司还建立了完善的激励机制和培训体系,为员工提供广阔的发展空间。这种以人为本的企业文化使得公司能够不断吸引和留住优秀人才,为公司的发展提供了有力保障。

Faraday Technology公司的发展小趣事

Enable Semiconductor Corp公司自创立之初,便专注于半导体技术的研发与创新。在早期阶段,公司研发团队经过无数次实验,成功研发出一种新型的半导体材料,这种材料具有更高的导电性能和更低的能耗。这一技术突破不仅提升了公司产品的性能,也为公司赢得了市场的初步认可。随着技术的不断迭代和优化,Enable Semiconductor Corp的产品逐渐在电子行业崭露头角,其市场份额也稳步上升。

深圳杜因特(DOINGTER)公司的发展小趣事

作为一家快速发展的电子企业,杜因特深知人才是公司最宝贵的财富。因此,公司始终将团队建设和人才培养放在重要位置。通过引进优秀人才、加强内部培训等方式,杜因特打造了一支高效协作、专业精湛的团队。同时,公司还为员工提供了良好的工作环境和福利待遇,让员工能够在一个如家般的团队中做具有革新性的工作。

以上五个故事仅是基于已知信息对深圳杜因特公司发展起来的相关事实的概括性描述,具体细节可能因实际情况而有所不同。

ATO SOLUTION公司的发展小趣事

随着全球环保意识的日益增强,ATO SOLUTION公司积极响应绿色环保号召,将环保理念融入企业发展和产品生产中。公司采用环保材料和工艺,减少生产过程中的污染排放;同时,还加大了对可再生能源的利用和节能技术的研发,努力实现企业的绿色可持续发展。这种环保实践不仅提升了公司的社会形象,也为公司的长期发展注入了新的动力。


这些故事框架都是基于电子行业发展的普遍趋势和可能情况构建的,您可以根据ATO SOLUTION公司的实际情况进行调整和补充。在撰写具体故事时,请确保内容的真实性和客观性,避免加入主观评价或猜测。

问答坊 | AI 解惑

WRITE_PORT_UCHAR的用法

VOID WRITE_PORT_UCHAR(   PUCHAR Port,   UCHAR Value ); 调用这个函数会读什么地方的数据(数据从那个口得到,地址线是哪个)? port这个参数是怎么的到是PA\\PB\\PC之类的口吗?地址怎么得到?…

查看全部问答>

内核调试的问题,怎么才能调试呢?

内核 下到 板子上后,怎么调试? 目前是下载成功后,debuger 工具栏出来了,但选break时,没有反应,是什么问题? ABW tH   Bs\'-ojG   在在SETTING 里选哪几个项目? 和这里的选项有关么? FIoS[MBH   ...…

查看全部问答>

发送字符串导致死循环:(

一个无线Zigbee网络的两个设备对传,发射端有一串比较长的字符串需要发送,我的方法是:把它分割成适合长度的字符串,先发送第一个小字符串,接着进入一个循环,等待接收机返回的确认信号后再发下一串字符串 k =StringLength/SuitLength; //k定义 ...…

查看全部问答>

给论坛体格建议,增加个软件工具的板块

增加个软件工具的板块方便大家查找软件下载,自己认为好的都传上来,还可以传些破解文件什么的,多好…

查看全部问答>

关于UCOS信号量实现的体会

1 、 Ucos 的信号量实现还是比较简单的。这里的简单指的是其代码易读,易理解。 简单来说,需要是实现信号量计数与任务挂起列表的实现。对于任务代码而言,信号量提供了共享资源与同步的支持。而信号量本身的实现,则是通过开断中断实现临界区的访 ...…

查看全部问答>

I2C如果有两个从机地址相同是什么效果?

如果从机有两个地址一样,那主机给这个地址传数据的时候是不是两个从机都能接收到? …

查看全部问答>

CC2530外接热敏电阻温度传感器

热敏电阻Rt温度会随温度变化,Rt和R1分压之后,输出经过跟随器送到CC2530的AD输入引脚。 这个用法适合精度要求不高的应用;R1取值要求能够让Rt阻值变化,输出较大的电压变化,另一方面流过Rt电流不要太大,避免Rt自身发热影响测量;跟随器隔离AD输 ...…

查看全部问答>

关于贴片stc12c5a60s2的下载问题

之前把单片机用焊台调了350度左右来焊接,焊接有错,再用热风枪400度把它拆卸下来了,再重新焊接成功后,发现程序下载不了mcu里面了。。。。不知道是不是把单片机烧坏了,求各位大虾赐教,小弟感激不尽…

查看全部问答>

关于单片机ADC采样电源电压时的分压电阻的问题

我用MSP430F149单片机的ADC采样电源电压,用的内部2.5V标准电压,电源电压最大4V,所以我用10K的电阻分压,可是最终采样到的电压为0V,不知道哪里出了问题?还请高手帮忙分析一下,同样的程序我用开发板测量电池的电阻分压后的电压,显示正常…

查看全部问答>

LPC4357驱动SDRAM的速度问题?

请问有用过LPC4357带有SDRAM存储器的吗?这个速度最高做到多少?按照勘误手册,不能超过100M。我的板子在96M,有的甚至90M都不稳定,整块读取正常,但是随机读取就容易出现进入硬件错误中断的情况。不知道大家在高速率下的各寄存器是如何配置的。…

查看全部问答>