[求助] 求IAR for MSP430的精确延时方法,不用定时器

aida66   2011-7-22 14:19 楼主
最近在学习MSP430F149,考虑到实用简便性,急需精确的软件延时程序。 
在此附上IAR for AVR 的软件精确延时程序 

#ifndef __delay_h 
#define __delay_h 
#include <intrinsics.h> 
#define   XTAL   11.0592   //可定义为你所用的晶振频率(单位Mhz) 

#define   delay_us(x)   __delay_cycles ( (unsigned long)(x * XTAL)  )  
#define   delay_ms(x)   __delay_cycles ( (unsigned long)(x * XTAL*1000) ) 
#define   delay_s(x)    __delay_cycles ( (unsigned long)(x * XTAL*1000000) ) 
#endif 

但是IAR for MSP430内没有 intrinsics.h这个文件,不能用__delay_cycles()这个指令。。。。 

希望有解决办法的大牛们帮个忙!!

回复评论 (5)

咋没人回复哩。。。自己顶一个。。。。
点赞  2011-7-22 15:33

为何会没有intrinsic.h文件呢?这还是不是430呀?

 

点赞  2011-8-6 17:23

回复 楼主 aida66 的帖子

我的f2274也有这个问题
点赞  2011-8-8 22:01
我感觉实现起来不太现实,因为cpu运行的时候可以有好几个时钟选择,这要看你具体选择哪一个时钟了,计算出你想要的时间,再去用这个延时函数,个人感觉还是用定时器比较好,选一个比较容易分频的时钟,稍微计算下就好,还有就是在cpu启动的时候默认是dco,这个内部晶振频率是一个范围,没有外部晶振来的精确,受温度电压影响较大(资料写的),很不好控制。
点赞  2011-8-16 13:43

回复 楼主 aida66 的帖子

LZ,你好
IAR for MSP430内没有 intrinsics.h这个文件,一般IAR是自带的,你可以在I\AR Systems\Embedded Workbench 6.0 Evaluation\430\inc
下查找下。
430有多个时钟信号,这个延时函数用的是MCLK信号~
点赞  2011-8-16 15:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复