标题:新手报到 顺便向C语言高手请教一个for循环的 问题
只看楼主
臧月亮
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2012-11-4
结帖率:100%
已结贴  问题点数:20 回复次数:6 
新手报到 顺便向C语言高手请教一个for循环的 问题
我用的单片机是atmega8,在pc2和pc3口上分别接有一个伺服电机,程序如下:
#include <avr/robot.h>
#include <avr/usta.h>

int main(void)
{
    int k;
    SET_DDRC2;                     //设置pc2为输出口。
    SET_DDRC3;                     //设置pc3为输出口。
    usta_Init();                   //串口初始化。               
   
    for (k =1; k <= 5; k++)        
    {
        HIGH_PORTC3;
        delay_nus(500+k);          //500是伺服电机的零点标定信号。
        LOW_PORTC3;
        HIGH_PORTC2;
        delay_nus(500-k);
        LOW_PORTC2;
        delay_nms(200);
    }
}

我的问题是:上边这个for是循环了5次,可是当我把 k++ 自增改为 k+2时  程序就不停了,我不明白。请各位老师赐教,
搜索更多相关主题的帖子: 伺服电机 include C语言 
2012-11-04 17:40
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
得分:5 
k++;//k=k+1;
k+2//k并没有加,你改成k += 2;

编程之路定要走完……
2012-11-04 18:24
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
得分:5 
k++和k=k+1,但是k+2不等于k=k+2的。这样也行:k+=2.
2012-11-04 19:24
臧月亮
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2012-11-4
得分:0 
请3楼的高手再给予指点,我按照2楼的老师说的重新写片实验,达到了如期结果。我记得老师在课堂上讲的时候说过:k+=2就等于k=k+2. 就是不理解k+2,还是请老师再来解答一下。谢谢了。
2012-11-04 22:38
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:5 
结合程序,慢慢多读几次赋值语句的描述就会有收获了。

www.qunxingw.wang
2012-11-04 23:03
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
=号不是等号 是赋值语句  就是把=右边的计算结果赋给=左边的变量

DO IT YOURSELF !
2012-11-05 08:26
臧月亮
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2012-11-4
得分:0 
k+=2等价于k=k+2,是俺描述错了,感谢4位老师的赐教,俺能明白了,谢谢
2012-11-05 09:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385886-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.812248 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved