7289.c

来自「键盘控制器zlg7289在软核处理器nios上的底层驱动程序」· C语言 代码 · 共 60 行

C
60
字号
#include "excalibur.h"
#include "7289.h"

np_pio *led=na_ledpio;

void keyup()
{
	 key7289->np_pioedgecapture=0;
	      key7289->np_piointerruptmask=0;
	send(0x15,8);     //读取按键代码指令
      receivedata=receive();
     longdelay();
		led->np_piodata=receivedata;
		printf("%d ",receivedata);
      switch(receivedata)

	{
		case	0x00: 
		   send(0xa1,8); //左移
		  send(0xc800,16);//显示数字
		 break;
		case	0x01: send(0xa1,8);	send(0xc801,16); break;
		case	0x02: send(0xa1,8); send(0xc802,16); break;
		case	0x03: send(0xa1,8); send(0xc803,16); break;
		case	0x04: send(0xa1,8); send(0xc804,16); break;
		case	0x05: send(0xa1,8); send(0xc805,16); break;
		case	0x06: send(0xa1,8); send(0xc806,16); break;
		case	0x07: send(0xa1,8); send(0xc807,16); break;
		case	0x08: send(0xa1,8); send(0xc808,16); break;
		case	0x09: send(0xa1,8); send(0xc809,16); break;
		case	0x0a: send(0xa1,8); send(0xc80a,16); break;
		case	0x0b: send(0xa1,8); send(0xc80b,16); break;
		case	0x0c: send(0xa1,8); send(0xc80c,16); break;
		case	0x0d: send(0xa1,8); send(0xc80d,16); break;
		case	0x0e: send(0xa1,8); send(0xc80e,16); break;
		case	0x0f: send(0xa1,8); send(0xc80f,16); break;
		case	0x10: send(0x8800,16);  break;
		case	0x11: send(0x88ff,16);  break;
		case	0x12: send(0x9801,16);     break;
		case	0x13: send(0x98ff,16);  break;
		case	0x14: send(0xbf,8);   break;
		case	0x15:       break;
		case	0x16:     send(0xa4,8);  break;
		case	0x17:  break;
	}	
	nr_delay(20);
	key7289->np_pioedgecapture=0;
	key7289->np_piointerruptmask=1;
	}
	
int main()
{	
       key7289->np_pioedgecapture=0;
	      key7289->np_piointerruptmask=1;
		nr_installuserisr(nasys_pio_1_irq,keyup,0);
					initial7289();
					//button();
					while(1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?