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

📄 9200.h

📁 西安付立叶的基于at91rm9200的linux
💻 H
字号:
#include <asm/arch/hardware.h>
extern AT91PS_SYS  AT91_SYS1;
void enable_irq(unsigned int irq_id)
{
   AT91_SYS1 -> AIC_IECR= (0x01 << irq_id);
}
   
//void AT91F_AIC_SMR(
void AT91F_AIC_DisableIt (unsigned int irq_id ) // \arg interrupt number to initialize
{
    unsigned int mask = 0x1 << irq_id;
    //* Disable the interrupt on the interrupt controller
    AT91_SYS1->AIC_IDCR = mask ;
    //* Clear the interrupt on the Interrupt Controller ( if one is pending )
    AT91_SYS1->AIC_ICCR = mask ;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PIO_SetOutput
//* \brief Set to 1 output PIO
//*----------------------------------------------------------------------------
 void AT91F_PIOB_SetOutput(unsigned int flag) // \arg  output to be set
{
	AT91_SYS1->PIOB_SODR = flag;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIO_ClearOutput
//* \brief Set to 0 output PIO
//*----------------------------------------------------------------------------
 void AT91F_PIOB_ClearOutput(unsigned int flag) // \arg  output to be cleared
{
	AT91_SYS1->PIOB_CODR = flag;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_Enable
//* \brief Enable PIO
//*----------------------------------------------------------------------------
 void AT91F_PIOB_Enable(unsigned int flag) // \arg  pio to be enabled 
{
        AT91_SYS1->PIOB_PER = flag;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIO_Disable
//* \brief Disable PIO
//*----------------------------------------------------------------------------
 void AT91F_PIOB_Disable(unsigned int flag) // \arg  pio to be disabled 
{
        AT91_SYS1->PIOB_PDR = flag;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_GetInput
//* \brief Return PIO input value
//*----------------------------------------------------------------------------
 unsigned int AT91F_PIOB_GETISR( // \return PIO input
	) // \arg  pointer to a PIO controller
{
	return AT91_SYS1->PIOB_ISR;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_AIC_EnableIt
//* \brief Enable corresponding IT number
//*----------------------------------------------------------------------------
 void AT91F_AIC_EnableIt (unsigned int irq_id ) // \arg interrupt number to initialize
{
    //* Enable the interrupt on the interrupt controller
    AT91_SYS1->AIC_IECR = 0x1 << irq_id ;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_EnablePeriphClock
//* \brief Enable peripheral clock
//*----------------------------------------------------------------------------
 void AT91F_PMC_EnablePeriphClock (unsigned int periphIds)  // \arg IDs of peripherals to enable
{
	AT91_SYS1->PMC_PCER = periphIds;
}


/***************************************************************/
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_CfgPMC
//* \brief Enable Peripheral clock in PMC for  PIOB
//*----------------------------------------------------------------------------
 void AT91F_PIOB_CfgPMC (void)
{
	AT91F_PMC_EnablePeriphClock(
		((unsigned int) 1 << AT91C_ID_PIOB));
}


//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_CfgOutput
//* \brief Enable PIO in output mode
//*----------------------------------------------------------------------------
 void AT91F_PIOB_CfgOutput(unsigned int pioEnable)      // \arg PIO to be enabled
{
	AT91_SYS1->PIOB_PER = pioEnable; // Set in PIO mode
	AT91_SYS1->PIOB_OER = pioEnable; // Configure in Output
}
/************************************************************/
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_CfgInput
//* \brief Enable PIO in input mode
//*----------------------------------------------------------------------------
 void AT91F_PIOB_CfgInput(unsigned int inputEnable)      // \arg PIO to be enabled
{
	// Disable output
	AT91_SYS1->PIOB_PER  = inputEnable;
	AT91_SYS1->PIOB_ODR  = inputEnable;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_InterruptEnable
//* \brief Enable PIO Interrupt
//*----------------------------------------------------------------------------
 void AT91F_PIOB_InterruptEnable(unsigned int flag) // \arg  pio interrupt to be enabled
{
        AT91_SYS1->PIOB_IER = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_InterruptDisable
//* \brief Disable PIO Interrupt
//*----------------------------------------------------------------------------
 void AT91F_PIOB_InterruptDisable(
        unsigned int flag) // \arg  pio interrupt to be disabled
{
        AT91_SYS1->PIOB_IDR = flag;
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIO_GetInterruptMaskStatus
//* \brief Return PIO Interrupt Mask Status
//*----------------------------------------------------------------------------
 unsigned int AT91F_PIOB_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status
        ) // \arg  pointer to a PIO controller
{
        return AT91_SYS1->PIOB_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PIOB_GetInterruptStatus
//* \brief Return PIO Interrupt Status
//*----------------------------------------------------------------------------
unsigned int AT91F_PIOB_GetInterruptStatus( // \return PIO Interrupt Status
        ) // \arg  pointer to a PIO controller
{
        return AT91_SYS1->PIOB_ISR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_AIC_ConfigureIt
//* \brief Interrupt Handler Initialization
//*----------------------------------------------------------------------------
unsigned int AT91F_AIC_ConfigureIt (
	unsigned int irq_id,     // \arg interrupt number to initialize
	unsigned int priority,   // \arg priority to give to the interrupt
	unsigned int src_type)   // \arg activation and sense of activation
	// \arg address of the interrupt handler
{
    unsigned int mask = 1<<irq_id;
    AT91_SYS1->AIC_SMR[irq_id] = src_type | priority  ;
    //* Clear the interrupt on the interrupt controller
    AT91_SYS1->AIC_ICCR = mask ;
    return 0;
}

⌨️ 快捷键说明

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