|
楼主 |
发表于 2010-9-21 17:10:02
|
显示全部楼层
回复【1楼】stm8s103
楼主在中断中延时,是不是想法有问题??
#ifndef __iar_delay_h__
#define __iar_delay_h__
#include <intrinsics.h>
#define _delay_loop_1(a) __delay_cycles(3*(a))
#define _delay_loop_2(a) __delay_cycles(4*(a))
#define _delay_us(a)\
__delay_cycles( (uint32) ( (double)(f_cpu) *((a)/1000000.0) + 0.5))
#define _delay_ms(a)\
__delay_cycles( (uint32) ( (double)(f_cpu)*((a)/1000.0) + 0.5))
#define _delay_s(a......
-----------------------------------------------------------------------
版主,我发现一个非常严重的问题:上面的延时函数里面的参数不可以是变量!!只可以是常量!!!
比如,我这样使用:
unsigned char a[3]={1,2,3};
_delay_us(a[1]);
编译后报错,信息如下:
Fatal Error[Ta030]: Argument to _delay_us must be a constant expression. |
|