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

📄 timer.c

📁 AD9958arm控制源程序
💻 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 中断处理结束;
}

/*-------------------------------------------------------
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    : 关外设中断
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: 必须与关外设中断配合使用
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 + -