微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LPC1114 定时中断进不去啊 求解

LPC1114 定时中断进不去啊 求解

时间:10-02 整理:3721RD 点击:
*********************************************************************************************************/
#include "LPC11xx.h"                                                    /* LPC11xx外设寄存器            */
/*********************************************************************************************************
  宏定义
*********************************************************************************************************/
#define BEEP        (1ul << 3)
#define BEEPON()   LPC_GPIO2->DATA |=  BEEP                            /* 蜂鸣器关                     */
#define BEEPOFF()    LPC_GPIO2->DATA &= ~BEEP                            /* 蜂鸣器开                     */
/*********************************************************************************************************
** Function name:       myDelay
** Descriptions:        软件延时
** input parameters:    无
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
void myDelay(uint32_t ulTime)
{
    uint32_t i;
    i = 0;
    while (ulTime--) {
       for (i = 0; i < 5000; i++);
    }
}
/*********************************************************************************************************
** Function name:       timer0Init
** Descriptions:        32位定时器0初始化函数
** input parameters:    无
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
void timer0Init (void)
{
     LPC_SYSCON->SYSAHBCLKCTRL  |= (1 << 6);                                      /* 初始化GPIO AHB时钟                 */
     LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 16);                                    /* 打开IOCON的配置时钟         */
     LPC_IOCON->PIO3_3          &= ~0x07;                                          /* 将P3.3初始化为GPIO功能     sck  */
     LPC_GPIO3->DIR             =BEEPON() ;                                           /* 将P3.3方向设置为输出               */
     LPC_GPIO3->DATA            = BEEPOFF();                                            /* 将P3.3设置为低电平               */
    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 9);                              /* 打开定时器模块               */   
    LPC_TMR32B0->PR      = 0x01;                                        /* 设置分频系数                 */
    LPC_TMR32B0->MCR     = 0x03;                                           /* 设置MR0匹配后复位TC并产生中断*/
    LPC_TMR32B0->MR0     = SystemFrequency/10000;                        /* 设置中断时间              100us   */
    LPC_TMR32B0->TCR     =0X02;
    LPC_TMR32B0->CTCR    =0X00;
    LPC_TMR32B0->IR     =0x1;
    LPC_TMR32B0->TCR     =0x01;
   
    NVIC_EnableIRQ(TIMER_32_0_IRQn);                                            /*定时器中断使能*/
    NVIC_SetPriority(TIMER_32_0_IRQn,2);
   
}
void  TIMER_32_0_IRQnHander(void)
{
    LPC_TMR32B0->IR=1;
    LPC_GPIO3->DATA            = BEEPON();
    return;
}
/*********************************************************************************************************
** Function name:       main
*********************************************************************************************************/
int main(void)
{
    SystemInit();                                                       /* 初始化目标板,切勿删除       */
    timer0Init();
    while (1);
}
/*********************************************************************************************************
  End Of File
*********************************************************************************************************/

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top