韦东山Linux嵌入式课程社区
直播中

姜钰

7年用户 213经验值
私信 关注

led不能移动闪烁

注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!

此板块为  [ARM裸机加强版]
  • 第八章第十节
  • led移动闪烁问题

  • 为什么我这样写Led不能移动闪烁?我的tmp由000->001->010......理论上应该会闪烁呀,但是烧写板子上的结果是3个Led灯一直亮着
  • 我把答案代码放进去就可以闪烁,求解这个代码~


  • int main(void)
  • {
  •         int tmp;
  •         unsigned int *pGPFCON = (unsigned int *)0x56000050;
  •         unsigned int *pGPFDAT = (unsigned int *)0x56000054;
  •         *pGPFCON &= ~((3<<8)|(3<<10)|(3<<12));
  •         *pGPFCON |=  ((1<<8)|(1<<10)|(1<<12));
  •         while(1)
  •         {
  •                 tmp = 0;
  •                 tmp &= 7;
  •                 *pGPFDAT &= ~(7<<4);
  •                 *pGPFDAT |= (tmp<<4);
  •                 delay(10000);
  •                 tmp++;
  •                 if(tmp==8)
  •                         tmp = 0;
  •         }
  •         return 0;
  • }
源代码是:

  • int main(void)
  • {
  •         int tmp;
  •         int val = 0;
  •         unsigned int *pGPFCON = (unsigned int *)0x56000050;
  •         unsigned int *pGPFDAT = (unsigned int *)0x56000054;
  •         *pGPFCON &= ~((3<<8)|(3<<10)|(3<<12));
  •         *pGPFCON |=  ((1<<8)|(1<<10)|(1<<12));
  •         while(1)
  •         {
  •                 tmp = ~val;
  •                 tmp &= 7;
  •                 *pGPFDAT &= ~(7<<4);
  •                 *pGPFDAT |= (tmp<<4);
  •                 delay(10000);
  •                 val++;
  •                 if(val==8)
  •                         val = 0;
  •         }
  •         return 0;
  • }
  • 区别就在于它定义了一个变量val

回帖(2)

杨洁磊

2019-3-22 16:02:16
tmp = 0;  和  tmp = ~val;一样嘛?
举报

徐娟

2019-3-22 16:24:09
嗯呢 谢谢啦~
举报

更多回帖

发帖
×
20
完善资料,
赚取积分