?? int.c
字號:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: int.c
** Latest modified Date: 2008-8-20
** Latest Version: 1.0
** Descriptions: 中斷設置與管理
**
**--------------------------------------------------------------------------------------------------------
** Created by: CaiWenqi
** Created date: 2008-8-20
** Version: 1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#include "config.h"
/*********************************************************************************************************
** Function name: siciwrSetup
** Descriptions: 設置系統(tǒng)中斷喚醒使能寄存器
** Input parameters: uiPara: 見頭文件,多個設置使用或操作然后傳入此參數(shù)
** usEnable: ENABLE -- 使能
** DISABLE -- 禁能
** Output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
void siciwrSetup (uint32 uiPara, uint16 usEnable)
{
if (usEnable == ENABLE) {
*pSIC_IWR |= uiPara;
} else {
*pSIC_IWR &= ~uiPara;
}
}
/*********************************************************************************************************
** Function name: sicisrGet
** Descriptions: 獲取SIC階段的中斷狀態(tài)ISR
** Input parameters: NONE
** Output parameters: NONE
** Returned value: 返回的ISR,已對無效部分進行了清零
*********************************************************************************************************/
uint32 sicisrGet (void)
{
return ((*pSIC_ISR) & 0x00ffffff);
}
/*********************************************************************************************************
** Function name: sicimaskSetup
** Descriptions: 設置系統(tǒng)中斷屏蔽寄存器
** Input parameters: uiPara: 見頭文件,多個設置使用或操作然后傳入此參數(shù)
** uiEnable: ENABLE -- 使能
** DISABLE -- 禁能
** Output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
void sicimaskSetup (uint32 uiPara, uint16 usEnable)
{
if (usEnable == ENABLE) {
*pSIC_IMASK |= uiPara;
} else {
*pSIC_IMASK &= ~uiPara;
}
}
/*********************************************************************************************************
** Function name: siciarSetup
** Descriptions: 設置系統(tǒng)中斷調整寄存器
** Input parameters: uiPara: 見頭文件
** uiIVGn: 見頭文件
** Output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
void siciarSetup (uint32 uiPara, uint32 uiIVGn)
{
switch (uiPara) {
case INT_PLL:
*pSIC_IAR0 &= ~(((uint32)0xf) << 0);
*pSIC_IAR0 |= uiIVGn << 0;
break;
case INT_DMA_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 4);
*pSIC_IAR0 |= uiIVGn << 4;
break;
case INT_PPI_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 8);
*pSIC_IAR0 |= uiIVGn << 8;
break;
case INT_SPORT0_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 12);
*pSIC_IAR0 |= uiIVGn << 12;
break;
case INT_SPORT1_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 16);
*pSIC_IAR0 |= uiIVGn << 16;
break;
case INT_SPI_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 20);
*pSIC_IAR0 |= uiIVGn << 20;
break;
case INT_UART_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 24);
*pSIC_IAR0 |= uiIVGn << 24;
break;
case INT_RTC_ERR:
*pSIC_IAR0 &= ~(((uint32)0xf) << 28);
*pSIC_IAR0 |= uiIVGn << 28;
break;
case INT_DMA0_PPI:
*pSIC_IAR1 &= ~(((uint32)0xf) << 0);
*pSIC_IAR1 |= uiIVGn << 0;
break;
case INT_DMA1_SPORT0_RX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 4);
*pSIC_IAR1 |= uiIVGn << 4;
break;
case INT_DMA2_SPORT0_TX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 8);
*pSIC_IAR1 |= uiIVGn << 8;
break;
case INT_DMA3_SPORT1_RX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 12);
*pSIC_IAR1 |= uiIVGn << 12;
break;
case INT_DMA4_SPORT1_TX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 16);
*pSIC_IAR1 |= uiIVGn << 16;
break;
case INT_DMA5_SPI:
*pSIC_IAR1 &= ~(((uint32)0xf) << 20);
*pSIC_IAR1 |= uiIVGn << 20;
break;
case INT_DMA6_UART_RX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 24);
*pSIC_IAR1 |= uiIVGn << 24;
break;
case INT_DMA7_UART_TX:
*pSIC_IAR1 &= ~(((uint32)0xf) << 28);
*pSIC_IAR1 |= uiIVGn << 28;
break;
case INT_T0:
*pSIC_IAR2 &= ~(((uint32)0xf) << 0);
*pSIC_IAR2 |= uiIVGn << 0;
break;
case INT_T1:
*pSIC_IAR2 &= ~(((uint32)0xf) << 4);
*pSIC_IAR2 |= uiIVGn << 4;
break;
case INT_T2:
*pSIC_IAR2 &= ~(((uint32)0xf) << 8);
*pSIC_IAR2 |= uiIVGn << 8;
break;
case INT_PF_A:
*pSIC_IAR2 &= ~(((uint32)0xf) << 12);
*pSIC_IAR2 |= uiIVGn << 12;
break;
case INT_PF_B:
*pSIC_IAR2 &= ~(((uint32)0xf) << 16);
*pSIC_IAR2 |= uiIVGn << 16;
break;
case INT_MDMA_S0:
*pSIC_IAR2 &= ~(((uint32)0xf) << 20);
*pSIC_IAR2 |= uiIVGn << 20;
break;
case INT_MDMA_S1:
*pSIC_IAR2 &= ~(((uint32)0xf) << 24);
*pSIC_IAR2 |= uiIVGn << 24;
break;
case INT_WTD:
*pSIC_IAR2 &= ~(((uint32)0xf) << 28);
*pSIC_IAR2 |= uiIVGn << 28;
break;
default:
break;
}
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -