irq_timer0.c

来自「LPC2129实现从SPI通讯和两个串口定时器中断」· C语言 代码 · 共 65 行

C
65
字号
#define     IRQ_GLOBALES 1

#include    "LPC2294.h"		   //调用LPC2129寄存器定义
#include	"IRQ_Timer0.H"
#include    "UART1.h"
#include	"InitDev.h"
#include    "driver.h"

uint8 TimeIndex = 0;
 // uint8 inn;

//int32 AdResult = 0,AdZero = 0,AdTol = 0;


void InitTimer0(void)
{
//设置Timer0
    T0IR = 0xffffffff;//复位所有的中断
    T0TC = 0;		  //计数器初始为0
	T0PR = 9;       //T=(TOPR+1)*TOMR0/Fpclk ,单位S;Fpclk见config.h;99定时1S,9/0.1S,0/0.01S.
	T0MCR = 0x03;   //匹配后发生中断且复位
	T0MR0 = 110592; //匹配数值 
//	T0TCR = 0x03;  //可设成为0x03?
//	T0TCR = 0x01;
    
	
	  
}
//Timer0中断-产生计算时钟
void   __irq IRQ_Timer0(void)	

{   
     /*  
    uint32 bak;
	if((T0IR&0x01)== 0x01)	 //判断是否是MR0中断
	{  	
        bak=VICIntEnable;                     // 备份当前VICIntEnable的值
        VICIntEnClr=(1<<4);                  // 禁止当前优先级中断
        VICVectAddr=0x00;                    // 清除中断逻辑,以便VIC可以响应更高优先级IRQ中断

    	if(TimeIndex==1)
		{ 
		  Led_off();                    
	  	  TimeIndex=0;
	    }
		else
		{ 
		  Led_on(); 
		 TimeIndex=1;
		}		  		 
	     VICIntEnable=bak;

       sdhx(&RXD_BUF[0]); 	
	   
	 }								
 
	sd=1;
    // 中断处理结束	
	VICVectAddr=0x00;
	T0IR = 0x01;   	       // 清除中断标志
   
   */
}

⌨️ 快捷键说明

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