IAR FOR STM8精确延时函数

转载 2012年03月29日 20:43:37
【整理者】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();  
} 

希望对大家有用

【STM8S】STM8S之定时器1的精确延时

本文介绍STM8S系列如何使用定时器1进行精确定时1S
  • feilusia
  • feilusia
  • 2016年08月30日 10:18
  • 8378

STM8S延时函数

/* MAIN.C file  *  * Copyright (c) 2002-2005 STMicroelectronics  */  //延时函数 #include "stm8s103...
  • likelyxuhy
  • likelyxuhy
  • 2014年10月30日 08:39
  • 2786

stm8s103f3p6的延时函数

使用stm8s时本来期望能够产生1us精度的脉冲,但是调来调去也没能实现。目前的情况是使用内部16MHz的RC时钟源,然后给到timer4,再经 8分频产生一个25us的中断,我能搞出来的最小中断周期...
  • k7arm
  • k7arm
  • 2017年06月25日 18:19
  • 1130

20140627-STM8L101F3P6关于毫秒级延时函数不同写法的波形

总结一下STM8L101F3P6工作在16MHz下,利用死循环、中断等不同写法的微秒级延时函数精度的情况。 一、死循环空指令的写法,延时函数程序如下:...
  • sy_lixiang
  • sy_lixiang
  • 2014年06月27日 13:14
  • 4039

STM8L1xx利用定时器实现毫秒和微妙延时

采用单片机的定时计数器进行毫秒和微妙级延时,精度较准。检测溢出时产生的标志位来判断延时到达。...
  • hpr1992
  • hpr1992
  • 2016年02月24日 15:42
  • 4274

STM8S精确延时+LED闪烁

初学者,写的一个LED闪烁程序,延时一秒,用示波器看过!#include"iostm8s105c4.h" #define LED PC_ODR_ODR1 void GPIO_Init() { PG...
  • u011852211
  • u011852211
  • 2015年08月03日 22:50
  • 2204

20140627-STM8L101F3P6关于微秒级延时函数不同写法的波形

1.STM8L101F3P6工作在16MHz下,延时函数程序如下: /****************************************************************...
  • sy_lixiang
  • sy_lixiang
  • 2014年06月27日 12:52
  • 4037

【STM8L】STM8L之定时器3的精确延时

本文介绍STM8L系列如何使用定时器3进行精确定时1S
  • feilusia
  • feilusia
  • 2016年11月30日 14:48
  • 2420

IAR的精确延时程序

C语言中,想使用精确的延时程序并不容易。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实...
  • Jackwen123
  • Jackwen123
  • 2014年01月16日 09:06
  • 1030

STM8S_002_TIM精确延时(阻塞式)

Ⅰ、写在前面在某些特定场合,需要精确的延时(us级),特别是底层驱动。如果使用软件延时,延时会随系统时钟改变及各种因素影响而改变。因此,就需要使用TIM精确延时。 阻塞式延时:从延时开始至结束,程序一...
  • ybhuangfugui
  • ybhuangfugui
  • 2017年04月27日 17:17
  • 2138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IAR FOR STM8精确延时函数
举报原因:
原因补充:

(最多只允许输入30个字)