×
嵌入式 > 技术百科 > 详情

IAR FOR STM8精确延时函数

发布时间:2020-05-28 发布时间:
|
用的是IAR FOR STM8,有个项目想精确的知道下delay行数的延时时间是多少,上网搜了下竟然没有,而且发现好些人提问怎么又这样的函数,我就用示波器测量做了个精确延时函数,分享给各位朋友吧。(16M晶振)用的时钟启动函数是
 
  1. void ClkInit(void)   
  2. {   
  3.     CLK_ECKR |=0x1;         //开启外部时钟    
  4.     while(!(CLK_ECKR&0x2)); //等待外部时钟rdy    
  5.     CLK_CKDIVR &= 0xF8;     //CPU无分频 16M   
  6.     CLK_SWR = 0xB4;         //选择外部时钟    
  7.     while(!(CLK_SWCR&0x8));   
  8.     CLK_SWCR |=0x2;         //使能外部时钟    
  9. }   
  10. 延时函数   
  11. //---  微秒级延时--------------------------   
  12. void Delayus(void)   
  13. {    
  14.     asm("nop"); //一个asm("nop")函数经过示波器测试代表100ns   
  15.     asm("nop");   
  16.     asm("nop");   
  17.     asm("nop");    
  18. }   
  19.   
  20. //---- 毫秒级延时程序-----------------------   
  21. void Delayms(unsigned int time)   
  22. {   
  23.     unsigned int i;   
  24.     while(time--)     
  25.     for(i=900;i>0;i--)   
  26.     Delayus();    
  27. }   

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
激光跟踪仪市场2023年有望达5.216亿美元