求解,为什么没有进入到触摸屏中断
void LCDmain(void)
{
unsigned int x,y;
Lcd_Port_Init();
Lcd_Init();
Lcd_PowerEnable(0, 1);
Lcd_EnvidOnOff(1);
//LCD 显示屏的初始化
//Lcd_ClearScr(0x09F);
for(x=0;x<=260;x++) //显示屏为黑色
for(y=0;y<=320;y++)
LCD_BUFFER[x][y] = 0x000000;
Delay(10);
Ts_Sep();//调用触摸屏初始化
for(x=50;x<=130;x++)//其中的一个矩形块为黄色
for(y=0;y<=320;y++)
LCD_BUFFER[x][y] = 0xffff00;
Delay(10);
while(1);//等待中断
}
void Ts_Sep(void)//初始化
{
rADCDLY=50000;
rADCCON = (1<<14)|(39<<6)|(0<<3)|(0<<2)|(0<<1)|(0);
rADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3);
pISR_ADC = (unsigned)ADC_ISR;
ClearSubPending(BIT_SUB_TC);
ClearSubPending(BIT_SUB_ADC);
ClearPending(BIT_ADC);
EnableSubIrq(BIT_SUB_TC);
EnableIrq(BIT_ADC);
}
void __irq ADC_ISR(void)//中断函数
{
int x,y;
// 屏蔽ADC中断
rINTSUBMSK |= BIT_SUB_TC;
rINTSUBMSK |= BIT_SUB_ADC;
rINTMSK |= BIT_ADC;
while(1)
{
for(x=0;x<=260;x++) //其中一块为白色
for(y=90;y<=120;y++)
LCD_BUFFER[y][x] = 0xffffff;
Delay(10);
}
while (rADCCON & 0x01); //当A/D转换真正开始时,位[0]会自动清0
while ( !(rADCCON & 0x8000) );//检测位[15], 当它为1时表示转换结束
// x=(0x3ff&rADCDAT0);
//y=(0x3ff&rADCDAT1);
}
/******************************************************************/
//关于一些触摸屏寄存器及相关的初宏定义
#define _ISR_STARTADDRESS 0x33ffff00
#define rADCCON (*(volatile unsigned*)0x58000000)
#define rADCTSC (*(volatile unsigned*)0x58000004)
#define rADCDLY (*(volatile unsigned*)0x58000008)
#define rADCDAT0 (*(volatile unsigned*)0x5800000c)
#define rADCDAT1 (*(volatile unsigned*)0x58000010)
#define rSUBSRCPND (*(volatile unsigned*)0x4A000018)
#define rINTPND (*(volatile unsigned*)0x4A000010)
#define rINTMSK (*(volatile unsigned*)0x4A000008)
#define rINTSUBMSK (*(volatile unsigned*)0x4A00001c)
#define rSRCPND (*( unsigned*)0x4A000000)
#define BIT_SUB_ADC (0x1<<10)
#define BIT_SUB_TC (0x1<<9)
#define BIT_ADC (0x1<<31)
#define BIT_SUB_ADC_S (0x1<<10)
#define ISR_ADC_OFT 31
#define ADCPRS 39
#define pISR_ADC (*(unsigned *)(_ISR_STARTADDRESS+0x9c))
#define EnableIrq(bit) rINTMSK &= ~(bit)
#define DisableIrq(bit) rINTMSK |= (bit)
#define EnableSubIrq(bit) rINTSUBMSK &= ~(bit)
#define DisableSubIrq(bit) rINTSUBMSK |= (bit)
void Ts_Sep(void);
__inline void ClearPending(int bit)
{
register i;
rSRCPND = bit;
rINTPND = bit;
i = rINTPND;
}
__inline void ClearSubPending(int bit)
{
register i;
rSUBSRCPND = bit;
i = rINTPND;
}
[i]使用的是RAM9 S3C2440开发板,上面是触摸屏相关的函数
正确的实验现象应该是 显示屏 黄色矩形中会有一块白色矩形
但那个白色矩形没有显示,所以判断没有进入到中断程序里,求解,为什么