历史上的今天
今天是:2024年11月28日(星期四)
2020年11月28日 | msp430单片机延时函数的使用方法
2020-11-28 来源:elecfans
今天看示例程序中出现了__delay_cycles()这个函数,在查找msp430x54x.h这个头文件的时候,发现这个头文件中没有该函数的声明,原来这个函数已经在IAR这个编译器中集成,这里总结一下__delay_cycles();这个函数的具体用法

第一步,复制代码:
#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))
第二步:修改CPU_F 语句中的double8000000 改成MSP430 CPU的主频率,即是CPU的MCLK
这里是使用的范例
delay_us(1); //1 微秒的延时
delay_ms(1); //1 毫秒的延时
delay_us(3.5); //延时3.5微秒
delay_ms(3.5); //延时3.5毫秒
delay_ms(1000); //延时1秒
直接调用,如:__delay_cycles(100),就延时100个时钟周期。
示例代码:修改昨天的程序,使之能够以6毫秒闪烁
#include
#include“for_5438_wjx.c”//头文件
#define CPU_F ((double)8000000)//8M的晶振
#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))
void main( void )
{
// Stop watchdog timer to prevent TIme out reset
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
put_P5DIR_BIT4(1); // 主电源 P5.4
put_P5OUT_BIT4(1); //打开外设电源
put_P9SEL_BIT0(0);//设置P9.0为普通I/O
put_P9DIR_BIT0(1);//设置P9.0为输出
put_P7SEL_BIT3(0);//开发板上7.3口是lcd的电源,设置P7.3为普通I/O
put_P7DIR_BIT3(1);//设置P7.3为输出
put_P7OUT_BIT3(0);//给lcd供电
while(1)
{
put_P9OUT_BIT0(0);//点亮led数码管
delay_ms(6);
put_P9OUT_BIT0(1);//点亮led数码管
delay_ms(6);
}
}
史海拾趣
|
SM59D03(8+4,内置E2PROM,ISP) SM59D03工作特性: 工作电压:2.7V-3.6V(L);4.5V-5.5V(C) 8052内核 每12或者6时钟周期/1机器周期(12T/6T) 工作频率最高25MHz 8K片上FLASH程序空间+4K 额外4K空间可作为EEPROM和ISP使用 768字节片上 ...… 查看全部问答> |
|
我做了一个串口通信模块,但不知道是为什么,单片机刚开始工作的时候,串口传到PC机上的数据还是对的,但运行一段时间后,数据就不对了,比先前的大很多,大到几万,而前面正确的只在10以内,不知道是什么原因。请高手指点!下边是对串口的一些设置 ...… 查看全部问答> |
|
小弟最近在看串口代码,public\\common\\oak\\drivers\\serial\\serpddcm\\Cserpdd.cpp里关于电源管理的部分看得有点蒙,它直接用setDevicePowerState就可以管理电源了,为什么要在init里m_PowerHelperHandle = DDKPwr_Initialize(SetPowerStateSta ...… 查看全部问答> |
|
1. 有没有人愿意参与到我的打印机ARM项目中来。参与本项目可以获得以下提高: 1。 熟悉TI LM3S9B90 ARM 的硬件和软件 设计,熟悉其驱动库的使用 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 当前,随着手机技术的迅猛发展,智能手机的操作系统不断升级,功能越来越多,性能越来越强,屏幕不断变大,CPU速度不断提升,耗电量也在急剧增加。 然而智能手机虽然功能众多,基本能满足用户 ...… 查看全部问答> |
|
如题,现在突然想学学汇编语言了,感觉还是很有必要的,不一定太深入,至少应该要比较了解一下吧,汇编本身比较复杂,自己琢磨可能效率不高,所以来此求助,不知道有没有谁出教程,用汇编语言教单片机的?希望大家共享一下相关视频或者非视频教程, ...… 查看全部问答> |
|
我需要用到一个指针,地址超过0x10000。在IAR下,通过设置“Data Model\"为“Large”,可以支持超过16位的地址指针。 但是在CCS中,同样的设置却无效。当地址超过0x10000时,会被强行设为0!!! ...… 查看全部问答> |




