📄 isr.c
字号:
#include "..\header\FPGA_peripherals.h"
#include "..\header\armperipherals.h"
extern unsigned short *fpga_intmask;
extern unsigned short *fpga_intstat;
extern unsigned short *fpga_intclear;
unsigned char* ts_reg = (unsigned char*)0x08000204;
unsigned short* testpulse = (unsigned short*)0x08000002;
extern unsigned short GetPenPos (short *pX, short *pY);
//extern unsigned short *fpga_intclear;
unsigned int gpio_count = 0;
void GPIORoutine(void) {
struct GPIO_struct *pGPIO = (struct GPIO_struct*)GPIO_BASE_ADDRESS;
unsigned short temp;
unsigned char temp1;
short x, y;
gpio_count++;
//if (!(count&1)) return;
//*testpulse = 0;
//*fpga_intclear = 0;
pGPIO->interrupt_status_reg = 0xFFFF; // Clear the interrupt(s)
*fpga_intmask &= (~(1<<4));
temp = *fpga_intstat;
*fpga_intstat = temp; // Clear the interrupt status
temp = *fpga_intstat;
//for(temp = 0; temp < 10; temp++)
GetPenPos(&x,&y);
printf("x: %d, y: %d\n", x, y);
*fpga_intmask |= (1<<4);
}
unsigned int timer3_count = 0;
void Timer3Routine(void) {
timer3_count++;
// if(count == 0x08000000)
// printf("Timer3 IRQ occurred. %dth time.\n", ++count);
}
void IRQStackOverflow(void) {
asm("loop: b loop");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -