IAR FOR STM8精确延时函数

本文介绍了一种使用IAR FOR STM8环境下实现精确延时的方法。通过示波器测试,作者提供了微秒级和毫秒级的延时函数,并分享了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【整理者】61ic.com
【提供者】llz77
【详细说明】IAR FOR STM8精确延时函数

用的是IAR FOR STM8,有个项目想精确的知道下delay行数的延时时间是多少,上网搜了下竟然没有,而且发现好些人提问怎么又这样的函数,我就用示波器测量做了个精确延时函数,分享给各位朋友吧。(16M晶振)用的时钟启动函数是
void ClkInit(void) 
{ 
    CLK_ECKR |=0x1;         //开启外部时钟  
    while(!(CLK_ECKR&0x2)); //等待外部时钟rdy  
    CLK_CKDIVR &= 0xF8;     //CPU无分频 16M 
    CLK_SWR = 0xB4;         //选择外部时钟  
    while(!(CLK_SWCR&0x8)); 
    CLK_SWCR |=0x2;         //使能外部时钟  
} 
延时函数 
//---  微秒级延时-------------------------- 
void Delayus(void) 
{  
    asm("nop"); //一个asm("nop")函数经过示波器测试代表100ns 
    asm("nop"); 
    asm("nop"); 
    asm("nop");  
} 

//---- 毫秒级延时程序----------------------- 
void Delayms(unsigned int time) 
{ 
    unsigned int i; 
    while(time--)   
    for(i=900;i>0;i--) 
    Delayus();  
} 

希望对大家有用
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值