您的位置:首页 > 其它

IAR FOR STM8精确延时函数

2012-03-29 20:43 309 查看
【整理者】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();
}


希望对大家有用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: