老司机解答下,为什么只移动一次,其他的下发的数据都是对的,就流水灯不对?

2019-07-15 08:11发布

void LedCommunicate()                                                                                       此函数一直在主函数中循环调用{    static unsigned char tmp=0xFE;                                                                         static unsigned char tmep=0x7F;                                                                       switch(RxdByte)                                                                                       RxdByte为串口调试助手下发的数据,一个字节的全局变量    {        case 0:LedBuff[6]=0xFF;break;        case 1:LedBuff[6]=0x00;break;                            //下发1,点亮所有小灯                case 2:LedBuff[6]=0xF0;break;                   //下发2,3点亮一半小灯                case 3:LedBuff[6]=0x0F;break;                case 4:                                                                                             //下发4进行左移流水灯               {              if(cnt>=1000)             {                                    cnt=0;                                                                                                  cnt为计数器,定时器T0中断服务函数中增加                                   LedBuff[6]=_crol_(tmp,1);                                                                    小灯1s循环左移一次,但是只移动了一次,逻辑哪里错误了,老司机请求解答 啊?                                   }                                        break;             }           case 5:                                                     //下发5进行流水灯右移动           {                          if(cnt>=1000)         {                                   cnt=0;                                   LedBuff[6]=_cror_(tmep,1);          }                          break;           }           case 6:BUZZ=0;break;           case 7:BUZZ=1;break;           default:break;    }    }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。