#define的问题 #define delay_2us(x) while(--x) 不能传数字
#include <reg52.h>
#include <intrins.h>
sbit LED = P1^7;
#define delay_2us(x) while(--x)
#define S(a,b) a*b
void main(void)
{
unsigned char temp = 10;
while(1)
{
temp = S(temp,temp);
delay_2us(1); //这里有问题 为什么? 可以穿变量
}
}
[解决办法]
define delay_2us(x) do { int t = (x); while(--t); } while (0)
[解决办法]
因为while(--X),在为1的时候,直接为0,相当于没有执行,并不是穿越,呵呵。
[解决办法]
直接传数字的话 相当于一个立即数或者说一个不可修改的值,那么--x这样的式子就肯定报错
[解决办法]
宏的参数只是简单滴替换
delay_2us(1);//这里有问题 为什么? 可以穿变量//delay_2us(1) while(--1);
[解决办法]
单片机小程序,
还是直接写个延时小函数吧