delay什么意思

更新时间:2022-11-26 08:57:38 阅读: 评论:0


2022年11月26日发(作者:切尔西 汉德勒)利用IAR自带的延时函数__delay_cycles() 写的可调脉冲发生程序



在 IAR 软件430的编译器里面我们可以利用它内部的延时子程序来实现我们想要的高精度软件延时,方法如下:

(1):将以下这段代码复制到你的.C源文件中。

#define CPU_F ((double)8000000)

#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))

#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

复制代码(2):修改

在 #define CPU_F ((double)8000000) 语句里 8000000 修改成你当前MSP430 CPU的主频频率,即CPU的MCLK。

单位为HZ。本例中的8000000为MCLK=8MHZ 的意思。

(3):使用范例

delay_us(1); //1 微秒的延时

delay_ms(1); //1 毫秒的延时

delay_us(3.5); //延时3.5微秒

delay_ms(3.5); //延时3.5毫秒

delay_ms(1000); //延时1秒

*/





#include





#define CPU_F ((double)8000000)

#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))

#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))









#define Major_Cycle 1500 //主周期

#define Minor_Cycle 43.5 //小周期





#define H_level 6 //高电平脉冲宽度

#define L_level ( (Minor_Cycle)-(H_level) ) //低电平脉冲宽度





#define Minor_Delay ( L_level )/2

#define Major_Delay ( Major_Cycle -(Minor_Cycle)*8 )









void main(void)

{

unsigned int i;

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL

P2DIR |= 0x01; // P2.0 = output direction

P2SEL |= 0x01; // P2.0 = ACLK function

P1DIR |= BIT2 + BIT3; // P1.2 P1.3 = output direction





do

{

IFG1 &= ~OFIFG; // Clear OSCFault flag

for (i = 0xFF; i > 0; i--); // Time for flag to t

}

while ((IFG1 & OFIFG)); // OSCFault flag still t?





BCSCTL2 |= SELM_3; // MCLK = LFXT1 (safe)

P1OUT &= 0xfa; // P1 init 1111 1001

while (1) // Infinate loop

{

for(i=0;i<8;i++)

{

P1OUT |= BIT3;

delay_ms(H_level);

P1OUT ^= BIT3;

delay_ms(Minor_Delay);

P1OUT |= BIT2;

delay_ms(H_level);

P1OUT ^= BIT2;

delay_ms(Minor_Delay);

}

delay_ms(Major_Delay);

}

}

本文发布于:2022-11-26 08:57:38,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/24091.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:stimulate
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图