timer0.c
来自「LPC2129实现从SPI通讯和两个串口定时器中断」· C语言 代码 · 共 48 行
C
48 行
#include "timer0.h"
//#include "LPC2294.h"
#include "uart0.h"
#include "uart1.h"
/************************************************/
/* function: void initial_timer0() */
/* 功能:实现定时中断的中断时间和中断向量的设置*/
/* 创建人:张继生 2009-12-12 */
/*************************************************/
void initial_timer0()
{
T0TC=0; //计数器初始值为0;
T0PR=0; //时钟不分频,时钟为Fpclk
T0MCR=0x03; //设置T0MR0匹配后复位T0TC,并产生中断
T0MR0=Fpclk;//1s中断一次
T0TCR=0x01;//启动定时器0
irq_timer0_set();
}
/************************************************/
/* function: void __irq irq_timer0() */
/* 功能:中断函数 */
/* 创建人:张继生 2009-12-12 */
/*************************************************/
void __irq irq_timer0()
{
UART0_SendByte(0x21);
// UART1_SendByte(0x22);
// SSendData(0x40);
//以下必须的加,不然只能中断一次
T0IR=0x01; //清除中断标志
VICVectAddr=0x00; //通知VIC中断处理结束
}
/************************************************/
/* function: void irq_timer0_set() */
/* 功能:实现定时中断的中断向量的设置 */
/* 创建人:张继生 2009-12-12 */
/*************************************************/
void irq_timer0_set()
{
VICIntSelect=VICIntSelect & ( ~(1 << 4)); //定时器0分配为IRQ中断
VICVectCntl1=0x20 | 4; //定时器0中断分配为向量IRQ通道0;
VICVectAddr1=(uint32)irq_timer0; //向量IRQ通道0的中断服务程序地址为 timer0_isr
VICIntEnable=VICIntEnable | (1 << 4); //使能定时器0中断
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?