forked from sailaoda/HUSTEIC-family
-
Notifications
You must be signed in to change notification settings - Fork 0
/
并行中断程序控制代码.txt
48 lines (48 loc) · 2.16 KB
/
并行中断程序控制代码.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include"stdio.h"
#include"xil_io.h"
#include"xgpio_l.h"
#define XPAR_AXI_GPIO_0_BASEADDR 0x40000000
#define XPAR_AXI_GPIO_2_BASEADDR 0x40020000
int main()
{
unsigned short button,last_sw,last_sw1,current_sw,current_sw1,he,ji;
Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_TRI_OFFSET,0xffff);//初始化
Xil_Out8(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_TRI_OFFSET,0x1f);
Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_TRI2_OFFSET,0x0000);
while(1)
while((Xil_In8(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_DATA_OFFSET)&0x1f)!=0)
{
button=Xil_In8(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_DATA_OFFSET)&0x1f;
while((Xil_In8(XPAR_AXI_GPIO_2_BASEADDR+XGPIO_DATA_OFFSET)&0x1f)!=0);
xil_printf("The pushed button's code is 0x%x\n",button);//打印按键输入
if(button==0x1)
{
last_sw=current_sw;
current_sw=Xil_In16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA_OFFSET)&0xffff;
if(last_sw!=current_sw)
xil_printf("The switches code is 0x%4x\n",current_sw);//打印开关输入
Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA2_OFFSET,current_sw);
xil_printf("The led code is 0x%4x\n",current_sw);//打印led输出
}
else if(button==0x8)
{
last_sw1=current_sw1;
current_sw1=Xil_In16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA_OFFSET)&0xffff;
if(last_sw1!=current_sw1)
xil_printf("The switches code is 0x%4x\n",current_sw1);//打印开关输入
Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA2_OFFSET,current_sw1);
xil_printf("The led code is 0x%4x\n",current_sw1);//打印led输出
}
else if(button==0x2)
{
he=current_sw+current_sw1; Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA2_OFFSET,he);
xil_printf("The led he code is 0x%4x\n",he);//打印led输出
}
else if(button==0x10)
{
ji=current_sw*current_sw1;
Xil_Out16(XPAR_AXI_GPIO_0_BASEADDR+XGPIO_DATA2_OFFSET,ji);
xil_printf("The led ji code is 0x%4x\n",ji);//打印led输出
}
}
}