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

📄 tc.c

📁 包括EPA协议栈
💻 C
字号:
#define TC_GLOBALS
#include "tc.h"
#undef TC_GLOBALS
/*------------------------------------------------------------------------------*
 *- Function name: TimerInit                                                   -*
 *- Parameter:TC_pt,     定时器通道寄存器的基地址                              -*
 *-           mode,      定时器的运行模式                                      -*
 *-           prio,      定时器中断的优先级                                    -*
 *-           Irq_id,    定时器对应的中断号                                    -*
 *-           Timer_id,  定时器对应的外设号                                    -*
 *-           tick,      传递给定时器的RC比较寄存器的值                        -*
 *-           os_isr,    定时器中断子程序的地址                                -*
 *-           int_type   定时器的中断类型(这里取的是RC比较中断)              -*
 *- Return value: void                                                         -*
 *- Brief: Init timer counter                                                  -*
 *------------------------------------------------------------------------------*/
void TimerInit(AT91PS_TC TC_pt,uint32 Mode,uint32 Prio,uint32 Irq_id,uint32 Timer_id, uint32 int_type, PTCHDLR os_isr)
{
    uint32 dummy;
    //关闭定时器时钟
	TC_pt->TC_CCR = AT91C_TC_CLKDIS ;
    //使能定时器对应的外设时钟
    AT91F_PS_EnablePeriphClock ( AT91C_BASE_PS, 1<<Timer_id ) ;
    //禁止中断
	TC_pt->TC_IDR = 0xFFFFFFFF ;
    //清除状态位
    dummy = TC_pt->TC_SR;
    //* Suppress warning variable "dummy" was set but never used
    dummy = dummy;
    //设置定时器的模式
    TC_pt->TC_CMR = Mode ;
    //配置中断
    AT91F_AIC_ConfigureIt (AT91C_BASE_AIC,						// AIC base address
						Irq_id,							        // System peripheral ID
						Prio,									// Priority
						AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,	// Level sensitive
						os_isr);
    //使能定时器时钟
	TC_pt->TC_CCR = AT91C_TC_CLKEN;
	//使能定时器中断的类型,为RC比较中断
	TC_pt->TC_IER = int_type;	
    //使能定时器0中断
    AT91F_AIC_EnableIt(AT91C_BASE_AIC, Irq_id);
}

⌨️ 快捷键说明

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