?? timer.c
字號:
/*------------------------------------------------------------
FILE NAME : timer.c
DESCRIPTION : timer of bs1084 arm firmware.
VERSION : 0.0.1 (c)aureole
AUTHOR : Aureole
CREATE DATE : 07.22.2006
MODIFY DATE : 00.00.2006
LOGS :---\
-
-0.0.0 ----. 07.22.2006 create
--------------------------------------------------------------*/
//-----------------include files-------------------------//
#include "..\include\arm.h"
#include "..\include\config.h"
#include "..\include\timer.h"
//-----------------function prototype--------------------//
void initialize_timer0(void);
void timer0_interrupt(void) __irq;
void disable_interrupt(void);
void enable_interrupt(void);
//-----------------variable area-------------------------//
unsigned int counter=0;
unsigned long int vic_bak;
//-----------------Function area-------------------------//
/*-------------------------------------------------------
NAME : timer0_interrupt
ENTRY TYPE: void
RETURN TYPE: int
PURPOSE : ---
VERSION : 0.0.1
DESCRIPTION:
CREATE DATE: ---
LOGS :---\
1.first create. 07.22.2006
--------------------------------------------------------*/
void irq_timer0(void) __irq
{
counter++;
T0IR=0x01; //清除中斷標志;
VICVectAddr=0x0; //通知VIC 中斷處理結(jié)束;
}
/*-------------------------------------------------------
NAME : initialize_timer
ENTRY TYPE: void
RETURN TYPE: int
PURPOSE : ---
VERSION : 0.0.1
DESCRIPTION:
CREATE DATE: ---
LOGS :---\
1.first create. 07.22.2006
--------------------------------------------------------*/
void initialize_timer0(void)
{
T0CTCR=0x00; //timer0 -> timer
T0PR=0; //不分頻
T0MCR=0x03;
T0MR0=Fcclk*0.00001; //定時 10 us
disable_timer0();
//Set IRQ
VICIntSelect = 0x00000000;
VICVectCntl1 = 0x20 | 0x04;
VICVectAddr1 = (unsigned long int)irq_timer0;
VICIntEnable |= 1 << 0x04;
}
/*-------------------------------------------------------
NAME : disable_interrupt
ENTRY TYPE: void
RETURN TYPE: int
PURPOSE : 關(guān)外設中斷
VERSION : 0.0.1
DESCRIPTION:
CREATE DATE: ---
LOGS :---\
1.first create. 07.23.2006
--------------------------------------------------------*/
void disable_interrupt(void)
{
vic_bak=VICIntEnable;
VICIntEnClr=vic_bak;
}
/*-------------------------------------------------------
NAME : enable_interrupt
ENTRY TYPE: void
RETURN TYPE: int
PURPOSE : 開外設中斷
VERSION : 0.0.1
DESCRIPTION: 必須與關(guān)外設中斷配合使用
CREATE DATE: ---
LOGS :---\
1.first create. 07.23.2006
--------------------------------------------------------*/
void enable_interrupt(void)
{
VICIntEnable=vic_bak;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -