首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

麻烦帮忙看看一个程序:)

麻烦帮忙看看一个程序:)

麻烦各位帮我看看一个函数。想在实验板上实现四个按键分别控制四个led。分别按键1、键2、键3、键4时分别是led1、led2、led3、led4其中一个亮。


可我的程序运行结果却是:第一次按了其中一个键,对应的led亮了;但是随后不管按哪个键,都一直是那个led亮。检查了多次,还是没有发现问题所在。帮帮忙:)


#include "excalibur.h"
int main(void)
{
   int buttons,buttonsLast=0x000F;  //按键变量
   int price,cost,number=1;         //默认购买一张票
   np_pio *pio1=na_button_pio;         //按键指针
   np_pio *pio2=na_led_pio;             //得到LED指针
   pio1->np_piodirection=0;          //设置按键端口全为输入端口
  
   while(1)
         {
           buttons=pio1->np_piodata;      //读取按键数据输入码
           if(buttons!=buttonsLast && buttonsLast==0x000F)  //判断是否有按键按下
             {
                switch(buttons & 0x000F)
                   {
                     case 0x000E:                  //站点1 led1亮
                        pio2->np_piodata=0x01;
                        price=2;
                        //液晶显示车票单价
                     break;


                     case 0x000D:                    //站点2 led2亮
                        pio2->np_piodata=(0x01<<1);
                        price=3;
                     break;
                   
                     case  0x000B:                    //站点3,led3亮
                        pio2->np_piodata=(0x01<<2);
                        price=5;
                     break;


                     case  0x0007:                 //站点4,led4亮
                        pio2->np_piodata=(0x01<<3);
                        price=6;
                     break;


                     case  0x000F:              //没有按键按下
                        buttons=buttonsLast=0x000F;
                     break;
                    default:
                    break;
                  }
              buttonsLast=buttons;           //保存当前按键值到buttonsLast变量
           }
      }
}

大家好!
在pio的建立过程中有没有用edge capture寄存器。
在交流中前进,共同实现nios的应用。
已经解决了 把最后一条语句去掉就可以了.
谢谢kzw
大家好!
呵呵,是应该除掉最后一句阿
在交流中前进,共同实现nios的应用。
请问xuexiacao,你是在nios下编程的吧?
如果在nios2下编程,应该没有
np_pio *pio2=na_led_pio;//得到LED指针 这样的函数吧?
在nios2中定义指针该如何弄?
我是在SDK Shell下编程的。
你说得没有错,同样的程序在IDE下连编译都通不过。
大家好!
nios2 都不用np-pio这样的结构提了
nios2下面pio都封装好了函数,直接操作就行,可以看看hello_led的工程。
在交流中前进,共同实现nios的应用。
返回列表