醉拳八哥 发表于 2015-5-27 14:22:34

为什么和小甲鱼讲的不一样呢 ?


小甲鱼讲的for语句格式为:for(;;){重复的语句   };
为什么我今天打开了一个程序,内容却是:
                P0 = 0xFE;
                for(i=0; i<30000; i++);
                P0 = 0xFD;
                for(i=0; i<30000; i++);
这也是循环语句吗 ?如果是,循环体是那部分?为什么和小甲鱼讲课讲的不一样。

ANDES 发表于 2015-5-27 14:40:20

很明显,你代码的for循环是用来延时的,循环30000次再执行下一条语句。循环体的那部分被省略了。建议不要学这种延时的方法。

loco_v 发表于 2015-5-27 14:45:04

你看到的for循环是起到了延时的作用,延时多久看for的变量值。同意楼上的

醉拳八哥 发表于 2015-5-27 14:54:47

ANDES 发表于 2015-5-27 14:40
很明显,你代码的for循环是用来延时的,循环30000次再执行下一条语句。循环体的那部分被省略了。建议不要学 ...

是先执行30000遍P0 = 0xFE;再执行30000遍P0 = 0xFD呢?
还是执行一遍P0 = 0xFE,再执行30000遍i++,再执行一遍P0 = 0xFD,再执行30000遍i++?

醉拳八哥 发表于 2015-5-27 15:00:20

loco_v 发表于 2015-5-27 14:45
你看到的for循环是起到了延时的作用,延时多久看for的变量值。同意楼上的

循环体是那一部分呢? 是P0 = 0xFE或者P0 = 0xFD吗?
这是一个控制LED 灯闪烁的程序,P0 = 0xFE表示亮,P0 = 0xFD表示灭,如果仅仅执行一遍P0 = 0xFE,那岂不是根本看不出来?

loco_v 发表于 2015-5-27 15:31:26

醉拳八哥 发表于 2015-5-27 15:00
循环体是那一部分呢? 是P0 = 0xFE或者P0 = 0xFD吗?
这是一个控制LED 灯闪烁的程序,P0 = 0xFE表示亮, ...

这么说的话,你的主循环在while(1)那里,这两个for循环是让你等亮的时间,和灭的时间,这样才会实现跑马灯的效果,

ANDES 发表于 2015-5-27 17:48:21

醉拳八哥 发表于 2015-5-27 15:00
循环体是那一部分呢? 是P0 = 0xFE或者P0 = 0xFD吗?
这是一个控制LED 灯闪烁的程序,P0 = 0xFE表示亮, ...

居然问出这种问题(循环体是那一部分呢? 是P0 = 0xFE或者P0 = 0xFD吗?)。这代码很明显就是执行一遍P0 = 0xFE,再执行30000遍i++,再执行一遍P0 = 0xFD,再执行30000遍i++,while(1)这是一个大循环,也就是亮 这么长时间,和灭这么长时间;就一直仿佛循环这两种状态。建议你回去再好好学习C语言,不一定要把那些什么指针弄懂,但是起码的for,while这些要弄懂,这样再学单片机会好点。

醉拳八哥 发表于 2015-5-27 20:34:49

ANDES 发表于 2015-5-27 17:48
居然问出这种问题(循环体是那一部分呢? 是P0 = 0xFE或者P0 = 0xFD吗?)。这代码很明显就是执行一遍P0...

谢谢了
页: [1]
查看完整版本: 为什么和小甲鱼讲的不一样呢 ?