?? extint.c
字號:
/****************************************************************************
* 文 件 名:EXTINT.c
* 版 本: V1.0
* 連 接:
* 功 能:外中斷函數(shù)
* 作者:黃振升
* 日期:2007/8/21
*---------------歷史版本信息-------------------------------------------------
* 修 改 人: 黃振升
* 版 本:
* 日 期: 2007/8/21
* 描 述:
****************************************************************************/
/***********************************************************************
包含文件
***********************************************************************/
#include "config.h"
/***********************************************************************
* 名 稱:void Extint0_Init(void)
* 功 能:外中斷初始化
* 入口參數(shù):無
* 出口參數(shù): 無
* 說 明:無
***********************************************************************/
void Extint0_Init(void)
{
PINSEL1 = (PINSEL1&~(0x03))|0x01; // 設(shè)P0.16為外中斷0
IO0DIR = IO0DIR&~(0x01<<16); // 設(shè)P0.16為輸入模式
EXTMODE |= 0x01; // 設(shè)置EINT0為邊沿觸發(fā)
//EXTPOLAR |= 0X01; // 上升沿有效
EXTPOLAR &= (~0X01); // 下降沿有效
IRQEnable(); // 使能IRQ中斷
VICIntSelect = 0x00000000; // 設(shè)置所有中斷分配為IRQ中斷
VICVectCntl2 = 0x20 | 0x0e; // 分配外部中斷0到向量中斷2
//VICVectAddr2 = (uint32)IRQ_Eint0; // 設(shè)置中斷服務(wù)程序地址
EXTINT |= 0x01; // 清除EINT0中斷標(biāo)志
VICIntEnable = VICIntEnable|(1<<0x0e); // 使能EINT0中斷
}
/***********************************************************************
* 名 稱:void Extint1_Init(void)
* 功 能:外中斷1初始化
* 入口參數(shù):無
* 出口參數(shù): 無
* 說 明:無
***********************************************************************/
void Extint2_Init(void)
{
PINSEL1 = (PINSEL0&~0xc0000000)|0x80000000; // 設(shè)P0.15為外中斷2
IO0DIR = IO0DIR&~(0x01<<15); // 設(shè)P0.15為輸入模式
EXTMODE |= 0x04; // 設(shè)置EINT2為邊沿觸發(fā)
//EXTPOLAR |= 0X04; // 上升沿有效
EXTPOLAR &= (~0X04); // 下降沿有效
IRQEnable(); // 使能IRQ中斷
VICIntSelect = 0x00000000; // 設(shè)置所有中斷分配為IRQ中斷
VICVectCntl3 = 0x20 | 0x10; // 分配外部中斷0到向量中斷2
//VICVectAddr3 = (uint32)IRQ_Eint2; // 設(shè)置中斷服務(wù)程序地址
EXTINT |= 0x04; // 清除EINT2中斷標(biāo)志
VICIntEnable = VICIntEnable|(1<<0x10); // 使能EINT2中斷
}
/*********************************************************************************************************
** 函數(shù)名稱 :IRQ_Eint0()
** 函數(shù)功能 :外部中斷0 EINT0服務(wù)程序口。
** 入口參數(shù) :無。
** 出口擦數(shù) :無。
*********************************************************************************************************
*/
void __irq IRQ_Eint0 (void)
{
EXTINT = 0x01; // 清除EINT0中斷標(biāo)志
VICVectAddr = 0x00; // 向量中斷結(jié)束
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -