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

📄 main.c

📁 用于LPC2200系列,中断调试,中断发生,中断终止,已被调试通过
💻 C
字号:
/****************************************************************************
* 文 件 名:中断终止调试
* 功    能:调试如何让中断终止,然后跳出循环
* 说    明:
****************************************************************************/
//
#include  "config.h"
#include  <stdio.h>

//#define UART1_BPS 9600			        // 定义通讯波特率
//#define UART0_BPS 115200			    // 定义通讯波特率
//  
uint32 count = 0;
uint32 testcount = 0;
/****************************************************************************
* 名    称:UART1_Ini()
* 功    能:初始化串口1。设置为8位数据位,1位停止位,无奇偶校验,波特率为9600
* 入口参数:无
* 出口参数:无
****************************************************************************/
/*
void  UART1_Init(void)
{  
    uint16 Fdiv;

    U1LCR = 0x83;						// DLAB = 1,可设置波特率
    Fdiv = (Fpclk / 16) / UART1_BPS;		// 设置波特率
    U1DLM = Fdiv / 256;							
    U1DLL = Fdiv % 256;						
    
    U1LCR = 0x03;

    //U0FCR = 0x81;                        // 使能FIFO,并设置触发点为8个字节
    //U0IER = 0x01;                        // 使能RDA中断 
     
}
*/
/****************************************************************************
* 名    称:UART0_Ini()
* 功    能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为4800
* 入口参数:无
* 出口参数:无
****************************************************************************/
/*
void  UART0_Init(void)
{  
    uint16 Fdiv;

    U0LCR = 0x83;						// DLAB = 1,可设置波特率
    Fdiv = (Fpclk / 16) / UART0_BPS;		// 设置波特率
    U0DLM = Fdiv / 256;							
    U0DLL = Fdiv % 256;						
    
    U0LCR = 0x03;

    //U0FCR = 0x81;                        // 使能FIFO,并设置触发点为8个字节
    //U0IER = 0x01;                        // 使能RDA中断     
}
*/
/**************************************main**************************************/

int main (void)

{
  void   __irq IRQ_Eint3(void); // Eint3中断服务程序,响应1pps上升沿到来中断
  
  PINSEL1 = 0x00000700;	// 设置管脚连接,P0.20设置为EINT3,P0.21为PWM5

  IRQEnable();                 // IRQ中断使能

  EXTMODE = 0x08;			   // 设置EINT3中断为边沿触发模式
  EXTPOLAR = 0x08;           // 设置EINT3中断为上升边沿有效                                 

  VICIntSelect = 0x00000000;			// 设置所有中断分配为IRQ中断
  
  VICVectCntl0 = 0x00000031;          // EINT3中断级别为0
  VICVectAddr0 = (int)IRQ_Eint3;	    // 设置中断服务程序地址
  EXTINT = 0x08;						// 清除EINT3中断标志
  
  VICIntEnable = 0x00020000;	  // 需要修改,使能EINT3,在Bit17  // 中断使能

  while (count <10)
         {
          NULL;
          //testcount++;
        
          if (count >10)
              {
               // testcount +=10;
               IRQDisable();
               /*
               EXTINT = 0x08;					// 清除EINT3中断标志 
               VICVectAddr = 0;					// 向量中断结束
               */
               //VICIntEnClr = 0x00020000;	   // 禁止EINT3
              
              }
         
         }
  
  while (1)
         { testcount++; }

}

/*****************************EINT3中断服务程序***********************************/

void   __irq IRQ_Eint3(void)
{ 
  count++; 
         
  if (count > 10)
      {
        VICIntEnClr = 0x00020000;	   // 清除EINT3
        //IRQDisable();
        // VICIntEnClr = 0x00000140;	   // 清除UART0和PWM中断 
       }
      
  EXTINT = 0x08;					// 清除EINT3中断标志 
  VICVectAddr = 0;					// 向量中断结束
}

⌨️ 快捷键说明

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