timer.c

来自「ARM+proteus仿真ucosii 经典」· C语言 代码 · 共 41 行

C
41
字号
#include "timer.h"
#include "libtimer.h"
#include "libvic.h"



void TimerInit(int TimerID,int TimerType,int IRQHandler,int s,int ms,int us)
{	
	StructTimer *Timer;
	if(TimerID==1)
	  Timer = TIMER1;
	else
	  Timer = TIMER0;

	Timer->TPR = 0;         // 设置定时器分频为1分频,得11059200Hz
		
	if(TimerType==TIMER_TYPE_CYCLE)   //循环定时器    
	 Timer->TMCR = 0x03;		    
	else                              //单周期定时器
	 Timer->TMCR = 0x01;
	  	
	Timer->TMR0 = s*11059200;//+ms*11059.2+us*11.0592;	   	
	
	Timer->TTCR = 0x03;		    // 启动并复位T0TC
	Timer->TTCR = 0x01; 

	IRQOpen(IRQ_TIMER0+TimerID,IRQ_TIMER0+TimerID,IRQHandler); //定时器0使用优先级14,定时器1使用优先级15	

	
}

__weak void TimerClrInt(int TimerID)
{
  StructTimer *Timer;
	if(TimerID==1)
	  Timer = TIMER1;
	  
	else
	  Timer = TIMER0;
  Timer->TIR = 0x01;
}

⌨️ 快捷键说明

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