• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

C程序移值问题

一个流水灯的程序,在16F877A能正常运行,但是在16F690就不行了,IO口那些都有改动,但是就是不行。但是输出,输入,高低电平这样的程序,还是可以的,但一加了延时程序,那LED灯就只在亮灯,都不流水样的,真不明白,研究了好久,还是没有结果,不知哪位能帮帮忙?谢谢。

#include
__CONFIG(XT&WDTDIS);
#define uchar unsigned char
#define uint unsigned int
//#define V0 RA2
//unsigned int ycon;
void delay (uint x)
{
  uint a,b;
   for(a=x;a>0;a--);
      for(b=110;b>0;b--);      
}
void main()   //主函数
{
  uchar i;
  TRISB=0x00;
  PORTB=0x20;
  TRISC=0;
  //PORTC=0x58;
   while(1);
   {
      PORTC=0x08;
      for(i=8;i>0;i--)
      {
         delay(500);
         PORTC=PORTC<<1;
         while(1);
      }
   }
}

全部回复(3)
正序查看
倒序查看
fzhlpp
LV.7
2
2013-08-28 23:15

PIC还没学过,不过你这个while(1)的后面为什么要加分号“;”?while(1)是个死循环啊,它只执行后面那个分号吧,后面的大括号就不会去了吧。就是这个意思:

while(1)

{

;

}

{这个后面什么的它怎么来呢,你把那个分号去掉试试}

0
回复
于豆豆
LV.4
3
2013-09-06 08:38
  
0
回复
2013-09-06 13:44
@于豆豆
[图片]  
这两天,才把问题解决,还要把后在的WHILE去掉,才能运行。谢谢了。
0
回复