u16就是无符号整型数据,i就是u16就是无符号整型数据,取值范围0----65535 在此,i还没有赋值 是否可以这样理解?各位大师 |
u16就是数据类型:unsigned int ,i就是unsigned int 类型的变量 |
延时函数。u16是无符号整型,这样传的数就可以在0-65536范围内 |
u16是 unsigned int 数据是无符号整形 数值在0`65536. i是下面delay(10000)数值。 意思是主程序执行延时程序时。 i取delay括号的数值进行i减1.直到i=0后结束延时。 |
菜鸟询问一下,我吧while(i--)改为了while(i++),然后无论怎么改delay()中的值,灯的闪烁频率不变,但是delay()中不能为0,为0,灯就是常亮。写入1和写入100000,LED灯闪烁速度不变。这是为什么?而且编译时候还不报警。 |
原代码没有错,提问的反到把内容抄错了,这也间接说明楼主的一些问题 |
延时的作用,。U16 i是定义一个名为i的16位变量,U16应该是unsigned short |
这是在定义一个延时子函数,void表示无返回值,delay再单片机程序中通常代表延时,void开头,如:void delay(),void SEG等,都是在写子函数,U16 i是在定义一个变量,U16是unsigned int的重定义,代表你定义的变量占16个字节 |
|
应该是unsigned short |
typedef unsigned int u16; 普通的说就是给typedef unsigned int取个小名叫u16,typedef unsigned int你问我是什么意思,我不知,我也记不住,我查那才知是16位无符号数,如是就用自己理解的无符号16位u16代,以后的程序中都用u16,我能记的,不用记不住的那个typedef unsigned int,我也一样怕英记。 |
不是(u6i), 而是(u16 i), 注意中间是有空格的。程序前面有定义:typedef unsigned int u16; u16 就是 数据类型 unsigned int 的缩写,因此函数名void delay(u16 i)表示调用该函数时,需要带一个16位无符号整型数的参量,不同的参量值决定了不同的延时时间。 |
void delay(u16 i) { while(i--); }这里当I=1时,怎么就是延时10us |
void delay(u16 i) { while(i--); } 实际上是定义一个16位无符号数i,当定义了i的值后,执行i--操作,直至i--=0,跳出循环 |
typedef unsigned char u8 后面也没有用到啊 |
无符号整型的变量名 |
应该是unsigned short,而不是signed int |
兄弟这是个延时函数 经过上边定义了u16 u16定义的变量就相当于unsigned int型 这个函数的注释也说明了 i为1的时候可以延时10us 也就是说根据需要给i赋值可以最多延时10乘2的16次方长度的时间 |
u16 是你需要定义的变量类型啊 |
C基础要补补了,unsigned int 无符号整型,定义变量i的范围0-65535.也就是delay()延时函数的最大值。 |
typedef unsigned int u16; 说白是 unsigned int 赋值范围是0-65535 |
重新定义delay()函数。 |
简单的来说就是需要重新定义delay延时函数 |
typedef unsigned int u16 的意思是u16等价unsigned int(变量类型的范围0~65535),显然100000已经超过unsigned int的范围了。我建议你看些C语言书籍 数据类型,函数,希望对你有用,谢谢 |
因为主函数(就是main()里面),要用到delay(100000),所以要定义void delay() |
u16 的意思是说延迟的最大数用二进制表示不能超过16位(0XFFFF). |
为什么 u16 与i之间加入逗号就不能运行程序了 |
void delay 是一个无返回值的函数括号里面无符号整形变量,来定义I的变量类型 |
用了typedef unsigned int u16; u16就是unsigned int了, |
你把上面的 typedef unsigned int u16 意思就是 u16 是无符号整形的数 如果你不适应就别用 typedef了 |
typedef unsigned int u16; //对数据类型进行声明定义 自己定义了一个u16的数据类型 意思相当于 unsigned int 类型 为了简化代码 void delay(u16 i) 自己写的一个延时函数 为了延时当 i = 1 是延时 10us 可以根据自己需要 输入i的值达到自己想要的延时时间 |
u16是无符号整型的变量名 |
u16 是unsigned int 最大为2的16次方 |
U16是你定义的变量类型,i |
楼主有点萌,还是再补一下C语言知识吧,加油↖(^ω^)↗ |