MSP430F149编程问题,,这种延时函数谁能给我解释下不,,我不是太懂
#defineCPU_F((double)8000000)#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/...
#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 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)) 展开
1个回答
展开全部
如果这样写,应该更好理解:
#define delay_us(x) __delay_cycles(x*8)
#define delay_ms(x) delay_us(x*1000)
所以关键在__delay_cycles。这应该也是个函数,它根据单片机主频精确计算出运行一次所花的时间,譬如是0.125us。那么要延迟1us,相当于执行8次该函数。
至于#define CPU_F ((double)8000000),这是根据单片机手册及主频而设定的一个值。以你目前的水平,可以不关注具体的细节,只需拿过来用就好。
北京康思
2018-09-20 广告
2018-09-20 广告
1、基本功能。市面上的电子负载均有基本的四项功能:恒流、恒压、恒阻和恒功率(安捷伦没有恒功率)。在功能基本相同,精确度相差不大的情况下,怎么判断是否符合要求呢?CHROMA和博计的电子负载只有一套工作电路,就是恒流功能。其他功能是根据欧姆定...
点击进入详情页
本回答由北京康思提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询