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

📄 timer.c

📁 用ARM7 LPC2292芯片驱动240128图形点阵液晶的源代码
💻 C
字号:
//========================================================================//
// 文件名:  Timer0.c
// 作  者: xinqiang Zhang(小丑)  (email: xinqiang@Mzdesign.com.cn)
// 日  期: 2008/01/01
// 描  述: timer0的应用范例
//
// 参  考: Copyright(C) 2006, Philips Semiconductor  Timer
// 版  本:
//      2008/01/01      First version    Mz Design
//========================================================================//
#include "LPC22XX.h"		//包含LPC22XX系列MCU的头文件
#include "type.h"
#include "irq.h"
#include "timer.h"

DWORD timer0_counter = 0;

//========================================================================//
// 函数: void Timer0Handler (void)
// 描述: 自定义的Timer0 VIC中断入口函数
// 参数: 无 
// 返回: 无
// 备注: 提供全局计数变量timer_counter的自加功有,其它程序可利用它作后台延时
// 版本:
//      2008/01/01      First version
//========================================================================//
void Timer0Handler (void) __irq 
{  
	IENABLE;					//允许VIC中断嵌套
    if(T0IR&0x01)
	{
		T0IR = 1;				//清除中断标识
    	timer0_counter++;
	}
	if(T0IR&0x02)
	{
		T0IR = 2;				//清除中断标识
	}
	if(T0IR&0x04)
	{
		T0IR = 4;				//清除中断标识
	}

    IDISABLE;
    VICVectAddr = 0;			///* Acknowledge Interrupt */
}

//========================================================================//
// 函数: void init_timer0(void)
// 描述: Timer0初始化函数
// 参数: 无 
// 返回: 无
// 备注: 
// 版本:
//      2008/01/01      First version
//========================================================================//
void init_timer0(void) 
{
    timer0_counter = 0;				//后台计数器清零
	T0PC = 0x000000000;				//设置Timer0预分频值,Timer0的计数频率 = Tpclk/(T0PC+1)	
    T0MR0 = 55295;					//设置匹配0的值,匹配周期 = 1/Timer0计数频率/(T0MR0+1) (s)
    T0MCR = 0x03;					//Timer0中断于匹配0(MR0),并在匹配0时清除计数器,Timer0停止计数
    install_irq( TIMER0_INT, (void *)Timer0Handler );	//装载设置Timer0的VIC中断
}

//========================================================================//
// 函数: void enable_timer0(void)
// 描述: Timer0使能
// 参数: 无 
// 返回: 无
// 备注: 
// 版本:
//      2008/01/01      First version
//========================================================================//
void enable_timer0(void)
{
    T0TCR = 1;
}

//========================================================================//
// 函数: void disable_timer0(void)
// 描述: Timer0停止
// 参数: 无 
// 返回: 无
// 备注: 
// 版本:
//      2008/01/01      First version
//========================================================================//
void disable_timer0(void)
{
    T0TCR = 0;
}

//========================================================================//
// 函数: void reset_timer0(void)
// 描述: Timer0计数值复位
// 参数: 无 
// 返回: 无
// 备注: 
// 版本:
//      2008/01/01      First version
//========================================================================//
void reset_timer0(void)
{
    DWORD regVal;

	regVal = T0TCR;
	regVal |= 0x02;
	T0TCR = regVal;
}


⌨️ 快捷键说明

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