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

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;    }    }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
浅笑无花须有时
1楼-- · 2019-07-15 15:36
jinyi7016 发表于 2018-7-13 13:45
你的这个函数是不是放在了主循环里了

对。。。。。。。
人中狼
2楼-- · 2019-07-15 19:27
 精彩回答 2  元偷偷看……
浅笑无花须有时
3楼-- · 2019-07-15 22:35
人中狼 发表于 2018-7-13 19:14
对于你现在的程序是当RxdByte=4且cnt>=1000时,LED才会移位一次,如果时想当RxdByte=4时,LED开始自动进行循环移位,那应该时当RxdByte=4时,设置一个标志,LED的循环移位部分放在定时器里,当这个标志有效时,在定时器里进行循环移位 ...

额,感谢感谢。。。。。。。。。。。。
浅笑无花须有时
4楼-- · 2019-07-15 22:35
浅笑无花须有时 发表于 2018-7-14 16:40
额,感谢感谢。。。。。。。。。。。。

请问下写入E2PROM中的数据是以什么类型存贮的?010101010101?这种么?

一周热门 更多>