亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? armint.c

?? 2440 bsp for wince5.0
?? C
?? 第 1 頁 / 共 2 頁
字號:
		   	   return SYSINTR_DM9000 ;
			}

#if SDIO_FOR_100BD	// for b'd revision 1.00
		///if ( submask & (1 << 18)) // EINT28 : SDMMC_CARD_DETECT
		if ( dwSubMask & (1 << 18)) // EINT28 : SDMMC_CARD_DETECT
		{
			s2440IOP->rEINTMASK |= (1 << 18);
			s2440IOP->rEINTPEND  = (1 << 18);
			s2440INT->rSRCPND  = BIT_EINT8_23;
			if (s2440INT->rINTPND & BIT_EINT8_23) 
				s2440INT->rINTPND = BIT_EINT8_23;

			// RETAILMSG(1, (TEXT("ARMINT.C - SYSINTR_SDMMC_CARD_DETECT rEINTMASK = 0x%8x, s2440IOP->rEINTMASK\r\n")));
			 RETAILMSG(1, (TEXT("ARMINT.C - SYSINTR_SDMMC_CARD_DETECT rEINTPEND = 0x%8x, s2440IOP->rEINTPEND\r\n")));			
			return SYSINTR_SDMMC_CARD_DETECT;
		}
#else					// for b'd revision 0.17
		if ( s2440IOP->rEINTPEND & (1 << 16))	// SD Card Detect
		{
			s2440IOP->rEINTMASK |= (1 << 16);
			s2440IOP->rEINTPEND  = (1 << 16);
			s2440INT->rSRCPND  = BIT_EINT8_23;
			if (s2440INT->rINTPND & BIT_EINT8_23) 
				s2440INT->rINTPND  = BIT_EINT8_23;
		
			return SYSINTR_SDMMC_CARD_DETECT;
		}
#endif



		//else if (submask & (1 << 8))	// 0x100 EINT8 : PCMCIA_LEVEL
		else if (dwSubMask & (1 << 8))	// 0x100 EINT8 : PCMCIA_LEVEL
		{
			s2440IOP->rEINTMASK |= 0x100;
			s2440IOP->rEINTPEND = 0x100;

			s2440INT->rSRCPND = BIT_EINT8_23;        
			if (s2440INT->rINTPND & BIT_EINT8_23) s2440INT->rINTPND = BIT_EINT8_23;

			//RETAILMSG(1, (TEXT("INT:SYSINTR_PCMCIA_LEVEL INT\r\n")));
			return SYSINTR_PCMCIA_LEVEL;
		}
		else
		{
			s2440INT->rSRCPND = BIT_EINT8_23;        
			if (s2440INT->rINTPND & BIT_EINT8_23) s2440INT->rINTPND = BIT_EINT8_23;

			//RETAILMSG(0, (TEXT("INT:???\r\n")));
			//return SYSINTR_NOP;
		}					
	}

	else if (IntPendVal == INTSRC_ADC) // INTSRC_ADC
	{
        // Touch Panel Int
       	SubIntPendVal = s2440INT->rSUBSRCPND;
       	
       	if(SubIntPendVal & INTSUB_TC) 
		{
       		s2440INT->rINTSUBMSK |= INTSUB_TC;
       		s2440INT->rSUBSRCPND  = INTSUB_TC;
       	
            s2440INT->rINTMSK |= BIT_ADC;
   	        s2440INT->rSRCPND  = BIT_ADC;        
       	    if (s2440INT->rINTPND & BIT_ADC) s2440INT->rINTPND = BIT_ADC;
           
			if( (s2440ADC->rADCDAT0 & 0x8000) || (s2440ADC->rADCDAT1 & 0x8000) )
			{
				s2440INT->rINTMSK |= BIT_TIMER1;     // Mask timer1 interrupt.
		   		s2440INT->rSRCPND = BIT_TIMER1;     // Clear pending bit
   				if (s2440INT->rINTPND & BIT_TIMER1) s2440INT->rINTPND = BIT_TIMER1;
				//RETAILMSG(0,(TEXT("INT Touch pen up \r\n")));

      	        odo_tsb->status = TOUCH_PEN_UP;
      		}
			else
			{
				//RETAILMSG(0,(TEXT("INT Touch pen down \r\n")));
   	            odo_tsb->status = TOUCH_PEN_DOWN;
			}
       
	        return SYSINTR_TOUCH_CHANGED;
		}
       	else if(SubIntPendVal & INTSUB_ADC)
		{
       		s2440INT->rINTSUBMSK |= INTSUB_ADC;
       		s2440INT->rSUBSRCPND = INTSUB_ADC;

	        s2440INT->rINTMSK |= BIT_ADC;
   		    s2440INT->rSRCPND = BIT_ADC;        
       		if (s2440INT->rINTPND & BIT_ADC) s2440INT->rINTPND = BIT_ADC;
            	
        	s2440INT->rINTMSK &= ~BIT_ADC;

           	return SYSINTR_NOP;
       	}
       	else
       		return SYSINTR_NOP;
	}

	else if (IntPendVal == INTSRC_TIMER1) // INTSRC_TIMER1
	{
       // Timer 1 interrupt to get touch point
      	s2440INT->rINTMSK |= BIT_TIMER1;
       	s2440INT->rSRCPND = BIT_TIMER1;
  	    if (s2440INT->rINTPND & BIT_TIMER1) s2440INT->rINTPND = BIT_TIMER1;

		// charlie, 020620
		if( (s2440ADC->rADCDAT0 & 0x8000) || (s2440ADC->rADCDAT1 & 0x8000) )
		{
			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH_CHANGED 1\r\n")));
			odo_tsb->status = TOUCH_PEN_UP;
			return SYSINTR_TOUCH_CHANGED;
		}

        if(odo_tsb->status == TOUCH_PEN_UP) 
		{
			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH_CHANGED 2 \r\n")));
			odo_tsb->status = TOUCH_PEN_UP;
			return SYSINTR_TOUCH_CHANGED;
		}
        else 
		{
			unsigned int TmpTCON;

        	odo_tsb->status = TOUCH_PEN_SAMPLE;
			TmpTCON = s2440PWM->rTCON;	// get TCON value to temp TCON register
			TmpTCON &= ~0xf00;     		// clear fields of Timer 1 
			TmpTCON |= 0x200;     		// interval mode(auto reload), update TCVNTB4, stop 
			s2440PWM->rTCON = TmpTCON;	// put the value to TCON register

			TmpTCON = s2440PWM->rTCON;	// get TCON value to temp TCON register
			TmpTCON &= ~0xf00;     		// clear fields of Timer 1 
			TmpTCON |= 0x100;     		// interval mode, no operation, start for Timer 4 
			s2440PWM->rTCON = TmpTCON;	// put the value to TCON register

			//RETAILMSG(0,(TEXT("INT Touch SYSINTR_TOUCH\r\n")));
	
        	return SYSINTR_TOUCH;
		}
	}

	else if (IntPendVal == INTSRC_EINT0)		// POWER BUTTON
	{ 
		s2440INT->rINTMSK |= BIT_EINT0;
		s2440INT->rSRCPND  = BIT_EINT0;			// Interrupt Clear
		if (s2440INT->rINTPND & BIT_EINT0) s2440INT->rINTPND  = BIT_EINT0;

		return(SYSINTR_POWER);	
	}

	else if(IntPendVal == INTSRC_DMA1) // AUDIO DMA input.
	{  
		s2440INT->rINTMSK |= BIT_DMA1;
		s2440INT->rSRCPND  = BIT_DMA1;
		if (s2440INT->rINTPND & BIT_DMA1) s2440INT->rINTPND  = BIT_DMA1;

		return(SYSINTR_AUDIO);
	}
	else if(IntPendVal == INTSRC_DMA2) // AUDIO DMA output.
	{  
		s2440INT->rINTMSK |= BIT_DMA2;
		s2440INT->rSRCPND  = BIT_DMA2;
		if (s2440INT->rINTPND & BIT_DMA2) s2440INT->rINTPND  = BIT_DMA2;

		return(SYSINTR_AUDIO);
	}

	else if(IntPendVal == INTSRC_USBH) 	// USB.
	{
		s2440INT->rINTMSK |= BIT_USBH;
		s2440INT->rSRCPND  = BIT_USBH;        
		if (s2440INT->rINTPND & BIT_USBH) s2440INT->rINTPND  = BIT_USBH;
		//RETAILMSG(1, (TEXT("INT:SYSINTR_USB INT\r\n")));
		return(SYSINTR_USB);     
	} 

	else if (IntPendVal == INTSRC_DMA3)
	{
		s2440INT->rINTMSK |= BIT_USBD; // USBD interrupt should be masked
		//s2440INT->rINTMSK |= BIT_DMA3;
		s2440INT->rSRCPND = BIT_DMA3;
		if (s2440INT->rINTPND & BIT_DMA3) s2440INT->rINTPND = BIT_DMA3;
		usbdShMem->usbdDma3Int=1;
		return SYSINTR_USBD;  
		//Correct. DMA3 interrupt will be connected to USBD interrupt.
		//break;
	}

	else if(IntPendVal == INTSRC_USBD) 
	{
		s2440INT->rINTMSK |= BIT_USBD;
		UsbdClearEir();	 //:-)
		s2440INT->rSRCPND = BIT_USBD;
		if (s2440INT->rINTPND & BIT_USBD) s2440INT->rINTPND = BIT_USBD;
		RETAILMSG(0,(TEXT("INT_USBD\r\n")));
		return SYSINTR_USBD;
    }

	else if(IntPendVal == INTSRC_UART0)	// SERIAL (UART0) (physical COM1: P1 connector).
	{  
		SubIntPendVal = s2440INT->rSUBSRCPND;

		// Note that we only mask the sub source interrupt - the serial driver will clear the
		// sub source pending register.
		//
		if(SubIntPendVal & INTSUB_ERR0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_ERR0;
		}
		else if(SubIntPendVal & INTSUB_RXD0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_RXD0;
			#if USE_AFC
			// by 0212.
				s2440IOP->rGPHDAT |= (0x2);  // Deassert nRTS				
			#endif
		}
		else if(SubIntPendVal & INTSUB_TXD0) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_TXD0;
		}
		else
		{
			return(SYSINTR_NOP);
		}
	
		// NOTE: Don't clear INTSRC:UART0 here - serial driver does that.
		//
		s2440INT->rINTMSK |= BIT_UART0;
		if (s2440INT->rINTPND & BIT_UART0) s2440INT->rINTPND  = BIT_UART0;

		return(SYSINTR_SERIAL);
	}
	else if(IntPendVal == INTSRC_UART2)	// IrDA (UART2)
	{
		SubIntPendVal = s2440INT->rSUBSRCPND;

		if(SubIntPendVal & INTSUB_ERR2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_ERR2;
		}       
		else if(SubIntPendVal & INTSUB_RXD2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_RXD2;
		}       
		else if(SubIntPendVal & INTSUB_TXD2) 
		{
			s2440INT->rINTSUBMSK |= INTSUB_TXD2;
		}       
		else
		{
			return(SYSINTR_NOP);
		}

		// NOTE: Don't clear INTSRC:UART2 here - serial driver does that.
		//
		s2440INT->rINTMSK |= BIT_UART2;
		if (s2440INT->rINTPND & BIT_UART2) s2440INT->rINTPND  = BIT_UART2;
		
		return(SYSINTR_IR);
	}
	else if (IntPendVal == INTSRC_RTC)	// for alarm. 030818
	{ 
		s2440INT->rSRCPND  = BIT_RTC;   // Interrupt Clear
		s2440INT->rINTPND  = BIT_RTC;
		s2440INT->rINTMSK |= BIT_RTC;   // Alarm Interrupt Disable
		return SYSINTR_RTC_ALARM;
	}
	else if(IntPendVal == INTSRC_CAM) 
	{
//		RETAILMSG(1,(TEXT("INT:SYSINTR_CAM INT:0x%x,0x%x\r\n"),s2440INT->rSRCPND,s2440INT->rSUBSRCPND));
		
		if( s2440INT->rSUBSRCPND & (0x1<<11) )
		{
			s2440INT->rINTSUBMSK |= (0x1<<11);
			s2440INT->rINTMSK |= BIT_CAM;
			s2440INT->rSUBSRCPND = (0x1<<11);
			s2440INT->rSRCPND = BIT_CAM;
			
			if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;
			return SYSINTR_CAM;
		}
		else if (s2440INT->rSUBSRCPND & BIT_SUB_CAM_P)
		{
			s2440INT->rINTSUBMSK |= (0x2<<11);
			s2440INT->rINTMSK |= BIT_CAM;
			s2440INT->rSUBSRCPND = (0x2<<11);
			s2440INT->rSRCPND = BIT_CAM;
		
			if (s2440INT->rINTPND & BIT_CAM) s2440INT->rINTPND = BIT_CAM;

			return SYSINTR_CAM;
		}
		
		s2440INT->rINTSUBMSK |= (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
		s2440INT->rINTMSK |= BIT_CAM;
		s2440INT->rSUBSRCPND = (BIT_SUB_CAM_C | BIT_SUB_CAM_P);
		s2440INT->rSRCPND = BIT_CAM;

		if (s2440INT->rINTPND & BIT_CAM)
		{
			s2440INT->rINTPND = BIT_CAM;
		}

		return SYSINTR_NOP;
	}
	else if(IntPendVal == INTSRC_IIC) 
	{
		s2440INT->rINTMSK |= BIT_IIC;
		s2440INT->rSRCPND = BIT_IIC;
		if (s2440INT->rINTPND & BIT_IIC) s2440INT->rINTPND = BIT_IIC;
		//RETAILMSG(1,(TEXT("IIC Interrupt\r\n")));
		return SYSINTR_IIC;
	}
	
	return(SYSINTR_NOP);
}

void UsbdClearEir(void)
{
	static volatile struct udcreg *s2440USBD = (volatile struct udcreg *)(0xB1200140);
	
	usbdShMem->usbdEir|=*(volatile BYTE *)&s2440USBD->EIR;
	usbdShMem->usbdUir|=*(volatile BYTE *)&s2440USBD->UIR;
	*(volatile BYTE *)&s2440USBD->EIR=usbdShMem->usbdEir;
	*(volatile BYTE *)&s2440USBD->UIR=usbdShMem->usbdUir;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产一区二区人妖| 国产精品久久久久一区二区三区 | 麻豆91免费看| 不卡的电影网站| 日韩小视频在线观看专区| 最新成人av在线| 韩国三级中文字幕hd久久精品| 色老汉一区二区三区| 久久尤物电影视频在线观看| 一个色综合网站| av成人免费在线| 久久精品夜色噜噜亚洲aⅴ| 日韩中文字幕麻豆| 91黄色激情网站| **性色生活片久久毛片| 国产成人免费av在线| 日韩欧美在线网站| 日韩国产精品久久| 欧美视频一区在线观看| 亚洲精品欧美在线| 91捆绑美女网站| 一区在线中文字幕| 成人性生交大片免费看视频在线 | 亚洲香蕉伊在人在线观| 不卡视频免费播放| 欧美激情中文不卡| 高清在线不卡av| 国产欧美一区二区在线观看| 韩国三级电影一区二区| 精品成人一区二区三区四区| 免费在线观看视频一区| 日韩三区在线观看| 麻豆精品视频在线观看| 精品日韩一区二区三区免费视频| 美女www一区二区| 日韩欧美色综合| 国产精华液一区二区三区| 久久久不卡网国产精品一区| 国产精品一二三四五| 久久精品无码一区二区三区| 成人一级视频在线观看| 欧美国产日韩在线观看| 99精品国产一区二区三区不卡| 国产精品久久久久9999吃药| 972aa.com艺术欧美| 一区二区三区精品在线| 3atv一区二区三区| 精品一区二区精品| 国产午夜亚洲精品午夜鲁丝片| 成人亚洲一区二区一| 亚洲欧美日韩中文播放| 欧美亚洲国产bt| 免费人成黄页网站在线一区二区 | 国产精品一二三区| 中文字幕人成不卡一区| 欧美日韩情趣电影| 狠狠色综合播放一区二区| 中文字幕中文字幕一区| 欧美亚洲国产一区二区三区| 美女视频一区二区三区| 国产精品卡一卡二| 欧美视频日韩视频| 国产一区二区三区精品视频| 亚洲欧美日本韩国| 日韩欧美国产一区在线观看| 福利一区在线观看| 偷拍与自拍一区| 久久久国产精华| 精品视频资源站| 国产成人精品网址| 亚洲成人资源在线| 国产女主播视频一区二区| 一本到三区不卡视频| 蜜臀久久99精品久久久久久9| 久久久久久毛片| 欧美性大战xxxxx久久久| 国产精品综合二区| 亚洲二区在线观看| 中文文精品字幕一区二区| 欧美日韩国产一级二级| 成人激情免费视频| 秋霞电影网一区二区| 日本欧美在线观看| 亚洲激情五月婷婷| 国产亚洲成aⅴ人片在线观看| 欧美日韩国产首页| 91麻豆高清视频| 国产激情一区二区三区四区| 午夜精品久久久久久久久久| 国产精品第13页| 日本一二三四高清不卡| 日韩欧美国产高清| 91精品欧美一区二区三区综合在| 99久久婷婷国产综合精品电影| 精品一区二区在线免费观看| 五月婷婷激情综合| 亚洲永久免费av| 成人免费一区二区三区在线观看| 2023国产精品自拍| 欧美电视剧免费全集观看| 欧美日韩成人在线| 一本一道久久a久久精品| 成人免费高清在线观看| 国产乱对白刺激视频不卡| 激情欧美日韩一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 肉丝袜脚交视频一区二区| 一区二区三区四区不卡在线| 亚洲人午夜精品天堂一二香蕉| 国产日韩av一区| 国产午夜亚洲精品理论片色戒| 精品久久久久久久久久久久包黑料 | 国产精品不卡在线| 国产精品水嫩水嫩| 亚洲国产精品传媒在线观看| 国产欧美一区二区精品性| 久久久久成人黄色影片| 久久综合久久综合九色| 久久久精品人体av艺术| 国产亚洲精品bt天堂精选| 国产日韩精品久久久| 欧美激情中文不卡| 亚洲欧美日韩国产另类专区| 一区二区在线看| 亚洲成人精品在线观看| 日韩精品免费专区| 麻豆精品精品国产自在97香蕉| 久久精品国产**网站演员| 国产精品一区二区在线播放| 国产真实乱偷精品视频免| 国产91精品露脸国语对白| 99国产麻豆精品| 精品视频999| 日韩欧美一区电影| 久久久久久一二三区| 1000精品久久久久久久久| 亚洲一区二区视频在线观看| 丝瓜av网站精品一区二区| 国产在线精品国自产拍免费| 国产精品996| 在线视频国内一区二区| 日韩欧美亚洲国产另类| 国产精品视频一二三区| 亚洲妇熟xx妇色黄| 狠狠色综合色综合网络| 色婷婷久久久久swag精品 | 免费在线观看不卡| 国产99精品在线观看| 欧美无砖砖区免费| 精品国产91亚洲一区二区三区婷婷| 国产欧美一区二区精品性| 亚洲激情网站免费观看| 国产酒店精品激情| 欧美色爱综合网| 中文字幕免费不卡| 日本视频一区二区三区| www.在线欧美| 日韩欧美国产一二三区| 亚洲精品视频在线观看免费| 久久91精品国产91久久小草| 色天天综合久久久久综合片| 国产亚洲欧美日韩日本| 香蕉久久一区二区不卡无毒影院| 国产另类ts人妖一区二区| 欧美精选在线播放| 亚洲视频在线一区| 国产精品夜夜嗨| 日韩一卡二卡三卡四卡| 亚洲精品免费视频| 成人av片在线观看| 久久久久国产精品麻豆| 日欧美一区二区| 欧美在线不卡一区| 国产精品久线在线观看| 国产一区二区三区日韩| 91麻豆精品国产91久久久更新时间 | 国产精品免费视频网站| 激情都市一区二区| 6080国产精品一区二区| 夜夜操天天操亚洲| 99久精品国产| 国产欧美日韩另类视频免费观看| 日日噜噜夜夜狠狠视频欧美人| 在线精品国精品国产尤物884a| 欧美国产激情一区二区三区蜜月| 蜜臀久久久久久久| 777午夜精品免费视频| 亚洲国产aⅴ天堂久久| 一本大道综合伊人精品热热 | 久久久久国产精品厨房| 青椒成人免费视频| 欧美喷潮久久久xxxxx| 夜夜揉揉日日人人青青一国产精品 | 一区二区三区精品在线| 91成人免费在线视频| 亚洲靠逼com| 色欧美乱欧美15图片| 一区二区三区蜜桃网| 欧美色图在线观看| 五月开心婷婷久久|