想让这个程序产生有限个脉冲,可它一直产生

2019-07-15 17:14发布

  if(i<10)                     
         
               { CLK=!CLK;

                     DelayMS(1)        ;
                                i++;
                }
想让这个程序产生有限个脉冲,可它一直产生。我用它给L297产生脉冲, 就一直转。真是想不通

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
18792451417
1楼-- · 2019-07-17 02:58
都试过了,还是不行,
Aidaohuakai
2楼-- · 2019-07-17 07:27
18792451417 发表于 2015-5-11 11:20
都试过了,还是不行,

CLK=0电机停止还是CLK=1电机停止?
你再把i的值设为0~200试试,你把i设为10,总共就延时了10ms,你能感觉得到吗?
18792451417
3楼-- · 2019-07-17 09:00
这个程序可以,但是我不会让他跳出死循环
while (1)
        { if(i<=1080)
             {
         
                CLK2=!CLK2;
                for(m=0;m<120;m++)
                     {
                           ;
                     }
                CLK2=!CLK2;
                    DelayMS(1);
                                i++;
              }
                     
          }
andy_wsj
4楼-- · 2019-07-17 12:57
问题出在程序的结束处,当程序输出有限个脉冲之后,程序结束,运行到main函数的结束,那么就要返回,这时候能返回到哪去?
如果是51的片子,那么很多公司的芯片都是继续从头再运行程序,于是继续输出有限个脉冲,看起来就是没有结束了
如果在程序的最后假山while(1); 不让程序结束,那么就可以了
最后一种方式就是不结束的方式,实际是可行的,但是楼主说要跳出while,如果是main函数,跳出之后又回到原来的问题了
51单片机的裸机C程序还是不要跳出main函数,这样才是可控的,否则就是人为的跑飞
18792451417
5楼-- · 2019-07-17 16:44
 精彩回答 2  元偷偷看……
rt201314
6楼-- · 2019-07-17 21:32
i<1000(unsigned char 不适最大255)?

一周热门 更多>