标题:
求助while循环次数 附C语言代码
[打印本页]
作者:
非凡科技
时间:
2021-4-14 11:35
标题:
求助while循环次数 附C语言代码
小白一枚想写一段闪灯次数代码 代码如下
while(shan<=4) {shan++;
if (Cnt1s==1)
yk=0;
if (Cnt1s==2)
yk=1;}
}
我想循环4次 怎么用这个代码一次也不循环 请老师指导下
作者:
Stella54
时间:
2021-4-14 16:06
前面定义''shan''了吗。这里或许用for循环更好
作者:
xianfajushi
时间:
2021-4-14 17:17
当shan大于后就不再进入循环,需要在某处再次处理为0才能再次进入循环,且yk变化很快让人不能及时观察到,所以,好似觉得没循环一样。
作者:
ch8822
时间:
2021-4-14 17:41
shan 没有初始化,必须先写shan=1;可执行4次
作者:
datouyuan
时间:
2021-4-14 18:05
你不是要求代码循环4次吧,应该是想要灯闪4下。
unsigned char shan = 4;
void main(void)
{
while (1)
{
if (shan)
{
if (bCnt1s)
{
bCnt1s = 0;
yk = !yk;
shan--;
}
}
}
}
复制代码
作者:
datouyuan
时间:
2021-4-14 18:14
上楼代码是闪2下。
要闪4下第13行改为 if(yk) shan--;
或者第1行改为 unsigned char shan = 8;
作者:
非凡科技
时间:
2021-4-14 18:23
谢谢各位热心解答
作者:
xjx51
时间:
2021-4-14 19:30
用for更简单啊
作者:
jfmdam
时间:
2021-4-14 19:42
首先,你的闪没有初始化,单片机会随便赋值,初始化为1就行了,其次,你没有延时,单片机执行速度非常快,很快就闪完了,所以你要加延时函数
作者:
man1234567
时间:
2021-4-15 17:28
不加延时真的有牛叉到能看出闪么
程序的问题:
1、初始化代码没看到,不知道在循环前 shan 的值;
2、程序中闪灯的次数和循环的次数不一样,循环2次一亮一灭算闪1次;
3、单片机是以Mhz速度进行的,你的程序就算是正常工作肉眼也看不出闪来;
此外,程序中的 Cnt1s 和 shan 的关系也没交代,是否在中断里调整 Cnt1s ?不要掖着藏着让大家盲人摸象。
作者:
名字不是重点
时间:
2021-4-16 09:55
do...while之类的循环结构,适用于不定次数的循环体,如果能确定次数,好用不过For。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1