⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mx21_aitc.c

📁 MX21_InitCodeLib.rar freescale mx21系列ARM芯片9328的WINCE5.0下初始化代码
💻 C
📖 第 1 页 / 共 2 页
字号:
			case 56:
				AITC_INTFRCH.bits.INT56 = _intbit;
				break;

        	case 55:
				AITC_INTFRCH.bits.INT55 = _intbit;
				break;

			case 54:
				AITC_INTFRCH.bits.INT54 = _intbit;
				break;

			case 53:
				AITC_INTFRCH.bits.INT53 = _intbit;
				break;

			case 52:
				AITC_INTFRCH.bits.INT52 = _intbit;
				break;

			case 51:
				AITC_INTFRCH.bits.INT51 = _intbit;
				break;

			case 50:
				AITC_INTFRCH.bits.INT50 = _intbit;
				break;

			case 49:
				AITC_INTFRCH.bits.INT49 = _intbit;
				break;

			case 48:
				AITC_INTFRCH.bits.INT48 = _intbit;
				break;

        	case 47:
				AITC_INTFRCH.bits.INT47 = _intbit;
				break;

			case 46:
				AITC_INTFRCH.bits.INT46 = _intbit;
				break;

			case 45:
				AITC_INTFRCH.bits.INT45 = _intbit;
				break;

			case 44:
				AITC_INTFRCH.bits.INT44 = _intbit;
				break;

			case 43:
				AITC_INTFRCH.bits.INT43 = _intbit;
				break;

			case 42:
				AITC_INTFRCH.bits.INT42 = _intbit;
				break;

			case 41:
				AITC_INTFRCH.bits.INT41 = _intbit;
				break;

			case 40:
				AITC_INTFRCH.bits.INT40 = _intbit;
				break;

        	case 39:
				AITC_INTFRCH.bits.INT39 = _intbit;
				break;

			case 38:
				AITC_INTFRCH.bits.INT38 = _intbit;
				break;

			case 37:
				AITC_INTFRCH.bits.INT37 = _intbit;
				break;

			case 36:
				AITC_INTFRCH.bits.INT36 = _intbit;
				break;

			case 35:
				AITC_INTFRCH.bits.INT35 = _intbit;
				break;

			case 34:
				AITC_INTFRCH.bits.INT34 = _intbit;
				break;

			case 33:
				AITC_INTFRCH.bits.INT33 = _intbit;
				break;

			case 32:
				AITC_INTFRCH.bits.INT32 = _intbit;
				break;

        	case 31:
				AITC_INTFRCL.bits.INT31 = _intbit;
				break;

			case 30:
				AITC_INTFRCL.bits.INT30 = _intbit;
				break;

			case 29:
				AITC_INTFRCL.bits.INT29 = _intbit;
				break;

			case 28:
				AITC_INTFRCL.bits.INT28 = _intbit;
				break;

			case 27:
				AITC_INTFRCL.bits.INT27 = _intbit;
				break;

			case 26:
				AITC_INTFRCL.bits.INT26 = _intbit;
				break;

			case 25:
				AITC_INTFRCL.bits.INT25 = _intbit;
				break;

			case 24:
				AITC_INTFRCL.bits.INT24 = _intbit;
				break;

        	case 23:
				AITC_INTFRCL.bits.INT23 = _intbit;
				break;

			case 22:
				AITC_INTFRCL.bits.INT22 = _intbit;
				break;

			case 21:
				AITC_INTFRCL.bits.INT21 = _intbit;
				break;

			case 20:
				AITC_INTFRCL.bits.INT20 = _intbit;
				break;

			case 19:
				AITC_INTFRCL.bits.INT19 = _intbit;
				break;

			case 18:
				AITC_INTFRCL.bits.INT18 = _intbit;
				break;

			case 17:
				AITC_INTFRCL.bits.INT17 = _intbit;
				break;

			case 16:
				AITC_INTFRCL.bits.INT16 = _intbit;
				break;

        	case 15:
				AITC_INTFRCL.bits.INT15 = _intbit;
				break;

			case 14:
				AITC_INTFRCL.bits.INT14 = _intbit;
				break;

			case 13:
				AITC_INTFRCL.bits.INT13 = _intbit;
				break;

			case 12:
				AITC_INTFRCL.bits.INT12 = _intbit;
				break;

			case 11:
				AITC_INTFRCL.bits.INT11 = _intbit;
				break;

			case 10:
				AITC_INTFRCL.bits.INT10 = _intbit;
				break;

			case 9:
				AITC_INTFRCL.bits.INT9 = _intbit;
				break;

			case 8:
				AITC_INTFRCL.bits.INT8 = _intbit;
				break;

        	case 7:
				AITC_INTFRCL.bits.INT7 = _intbit;
				break;

			case 6:
				AITC_INTFRCL.bits.INT6 = _intbit;
				break;

			case 5:
				AITC_INTFRCL.bits.INT5 = _intbit;
				break;

			case 4:
				AITC_INTFRCL.bits.INT4 = _intbit;
				break;

			case 3:
				AITC_INTFRCL.bits.INT3 = _intbit;
				break;

			case 2:
				AITC_INTFRCL.bits.INT2 = _intbit;
				break;

			case 1:
				AITC_INTFRCL.bits.INT1 = _intbit;
				break;

			case 0:
			default:
				AITC_INTFRCL.bits.INT0 = _intbit;
				break;

		}									

	return;
}


//---------------------------------------------------
// This function is used for clearing the forced interrupt 
// by writing to the AITC_INTFRCL or the AITC_INTFRCH 
// register.
//---------------------------------------------------
void 
AITC_ClearOneInt(uint32_t intNum)   // interrupt number
{

  uint32_t _intbit;
  _intbit = 0;

	switch(intNum)
    	{
        	case 63:
				AITC_INTFRCH.bits.INT63 = _intbit;
				break;

			case 62:
				AITC_INTFRCH.bits.INT62 = _intbit;			
				break;

			case 61:
				AITC_INTFRCH.bits.INT61 = _intbit;
				break;

			case 60:
				AITC_INTFRCH.bits.INT60 = _intbit;
				break;

			case 59:
				AITC_INTFRCH.bits.INT59 = _intbit;
				break;

			case 58:
				AITC_INTFRCH.bits.INT58 = _intbit;
				break;

			case 57:
				AITC_INTFRCH.bits.INT57 = _intbit;
				break;

			case 56:
				AITC_INTFRCH.bits.INT56 = _intbit;
				break;

        	case 55:
				AITC_INTFRCH.bits.INT55 = _intbit;
				break;

			case 54:
				AITC_INTFRCH.bits.INT54 = _intbit;
				break;

			case 53:
				AITC_INTFRCH.bits.INT53 = _intbit;
				break;

			case 52:
				AITC_INTFRCH.bits.INT52 = _intbit;
				break;

			case 51:
				AITC_INTFRCH.bits.INT51 = _intbit;
				break;

			case 50:
				AITC_INTFRCH.bits.INT50 = _intbit;
				break;

			case 49:
				AITC_INTFRCH.bits.INT49 = _intbit;
				break;

			case 48:
				AITC_INTFRCH.bits.INT48 = _intbit;
				break;

        	case 47:
				AITC_INTFRCH.bits.INT47 = _intbit;
				break;

			case 46:
				AITC_INTFRCH.bits.INT46 = _intbit;
				break;

			case 45:
				AITC_INTFRCH.bits.INT45 = _intbit;
				break;

			case 44:
				AITC_INTFRCH.bits.INT44 = _intbit;
				break;

			case 43:
				AITC_INTFRCH.bits.INT43 = _intbit;
				break;

			case 42:
				AITC_INTFRCH.bits.INT42 = _intbit;
				break;

			case 41:
				AITC_INTFRCH.bits.INT41 = _intbit;
				break;

			case 40:
				AITC_INTFRCH.bits.INT40 = _intbit;
				break;

        	case 39:
				AITC_INTFRCH.bits.INT39 = _intbit;
				break;

			case 38:
				AITC_INTFRCH.bits.INT38 = _intbit;
				break;

			case 37:
				AITC_INTFRCH.bits.INT37 = _intbit;
				break;

			case 36:
				AITC_INTFRCH.bits.INT36 = _intbit;
				break;

			case 35:
				AITC_INTFRCH.bits.INT35 = _intbit;
				break;

			case 34:
				AITC_INTFRCH.bits.INT34 = _intbit;
				break;

			case 33:
				AITC_INTFRCH.bits.INT33 = _intbit;
				break;

			case 32:
				AITC_INTFRCH.bits.INT32 = _intbit;
				break;

        	case 31:
				AITC_INTFRCL.bits.INT31 = _intbit;
				break;

			case 30:
				AITC_INTFRCL.bits.INT30 = _intbit;
				break;

			case 29:
				AITC_INTFRCL.bits.INT29 = _intbit;
				break;

			case 28:
				AITC_INTFRCL.bits.INT28 = _intbit;
				break;

			case 27:
				AITC_INTFRCL.bits.INT27 = _intbit;
				break;

			case 26:
				AITC_INTFRCL.bits.INT26 = _intbit;
				break;

			case 25:
				AITC_INTFRCL.bits.INT25 = _intbit;
				break;

			case 24:
				AITC_INTFRCL.bits.INT24 = _intbit;
				break;

        	case 23:
				AITC_INTFRCL.bits.INT23 = _intbit;
				break;

			case 22:
				AITC_INTFRCL.bits.INT22 = _intbit;
				break;

			case 21:
				AITC_INTFRCL.bits.INT21 = _intbit;
				break;

			case 20:
				AITC_INTFRCL.bits.INT20 = _intbit;
				break;

			case 19:
				AITC_INTFRCL.bits.INT19 = _intbit;
				break;

			case 18:
				AITC_INTFRCL.bits.INT18 = _intbit;
				break;

			case 17:
				AITC_INTFRCL.bits.INT17 = _intbit;
				break;

			case 16:
				AITC_INTFRCL.bits.INT16 = _intbit;
				break;

        	case 15:
				AITC_INTFRCL.bits.INT15 = _intbit;
				break;

			case 14:
				AITC_INTFRCL.bits.INT14 = _intbit;
				break;

			case 13:
				AITC_INTFRCL.bits.INT13 = _intbit;
				break;

			case 12:
				AITC_INTFRCL.bits.INT12 = _intbit;
				break;

			case 11:
				AITC_INTFRCL.bits.INT11 = _intbit;
				break;

			case 10:
				AITC_INTFRCL.bits.INT10 = _intbit;
				break;

			case 9:
				AITC_INTFRCL.bits.INT9 = _intbit;
				break;

			case 8:
				AITC_INTFRCL.bits.INT8 = _intbit;
				break;

        	case 7:
				AITC_INTFRCL.bits.INT7 = _intbit;
				break;

			case 6:
				AITC_INTFRCL.bits.INT6 = _intbit;
				break;

			case 5:
				AITC_INTFRCL.bits.INT5 = _intbit;
				break;

			case 4:
				AITC_INTFRCL.bits.INT4 = _intbit;
				break;

			case 3:
				AITC_INTFRCL.bits.INT3 = _intbit;
				break;

			case 2:
				AITC_INTFRCL.bits.INT2 = _intbit;
				break;

			case 1:
				AITC_INTFRCL.bits.INT1 = _intbit;
				break;

			case 0:
			default:
				AITC_INTFRCL.bits.INT0 = _intbit;
				break;

		}				
		return;
}



//---------------------------------------------------
// This function is used for forcing all the interrupt 
// lines simultaneously based on directly writing to 
// the AITC_INTFRCL and the AITC_INTFRCH registers.
//---------------------------------------------------
void 
AITC_ForceAllInt(void)
{	
	// set all bits in the AITC_INTFRCH
	// and the AITC_INTFRCL registers
    
    AITC_INTFRCL.all = AITC_FORCE_ALL;
    AITC_INTFRCH.all = AITC_FORCE_ALL;

} 


//---------------------------------------------------------------
// This function provides the basic steps to setup the IRQ interrupt, 
// and update the vector address based on the configuration established
// in the INTCNTL register.
//---------------------------------------------------------------

void
AITC_SetupIRQ(uint32_t   nSourceNumber, 
              uint32_t   nPriorityLevel)
{
	
	uint32_t _regVal; // temporary variable to
	                  // store INTCNTL value.

    uint32_t _mdBit;  // temp variable to
	                  // store MD Bit in INTCNTL
	                  
    uint32_t _nmBit;  // temp variable to
	                  // store NM Bit in INTCNTL	                  	
	
	// To allow register access
	// SetCpuPrivMode(TRUE);
	
	// Clear Normal Interrupt Disable Bit
	AITC_INTCNTL.bits.NIDIS = AITC_NIDIS_SET;
		
	// Set Interrupt Type To IRQ (0)
	AITC_SetIntType(nSourceNumber, (uint8_t)AITC_IS_IRQ);
	
	// Set Priority Level
	AITC_SetIrqPriority(nSourceNumber, nPriorityLevel);
	
	// Enable Interrupt Source
	AITC_EnableIntSource(nSourceNumber);	

	return;
}

//---------------------------------------------------------------
// This function provides the basic steps to setup the FIQ interrupt, 
// and update the vector address based on the configuration established
//in the INTCNTL register.
//---------------------------------------------------------------


// Public Utility Functions
void
AITC_SetupFIQ(uint32_t   nSourceNumber, 
              uint32_t   nPriorityLevel)
{
	
	uint32_t _regVal; // temp variable to
	                  // store INTCNTL value
	                  
    uint32_t _mdBit;  // temp variable to
	                  // store MD Bit in INTCNTL
	                  
    uint32_t _fmBit;  // temp variable to
	                  // store FM Bit in INTCNTL	                  
	
	
	// allow register access
	// SetCpuPrivMode(TRUE);
	
	// Clear fast Interrupt Diable Bit
	AITC_INTCNTL.bits.FIDIS = AITC_FIDIS_SET;
		
	// Set Interrupt Type To FIQ (0)
	AITC_SetIntType(nSourceNumber, (uint8_t)AITC_IS_FIQ);
	
	// Set Priority Level
	// FIQ priority is not software programmable
	// SetFiqPriority(nSourceNumber, nPriorityLevel);
	// Enable Interrupt Source

	AITC_EnableIntSource(nSourceNumber);	
	

	return;
}



⌨️ 快捷键说明

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