专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

NXP_LPC1114延时函数集合

作者:佚名   来源:本站原创   点击数:  更新时间:2012年11月14日   【字体:
#include "LPC11XX.h"
#include "gpio.h"
#include "timer16.h"

/*系统时钟配置为48MHz,AHB不分频,一次定时器时钟为48Mhz,因此得出以下分频值,匹配值*/
void Delay_Us(unsigned int DelayTimes)
{
 /* * setup timer #1 for delay */
 
 //LPC_SYSCON->SYSAHBCLKCTRL |= (1<<8);     /*开启定时器Timer16_1时钟--时钟配置中开启该时钟*/
  LPC_TMR16B1->TCR = 0x02;                 /* reset timer */
  LPC_TMR16B1->PR  = 48;                   /* set prescaler to zero 根据AHB时钟确定分频值*/
  LPC_TMR16B1->MR0 = DelayTimes;             /* 所需的延时时间 */
  LPC_TMR16B1->IR  = 0xff;                 /* reset all interrrupts 复位所有的中断*/
  LPC_TMR16B1->MCR = 0x04;                 /* stop timer on match --达到匹配停止*/
  LPC_TMR16B1->TCR = 0x01;                 /* start timer 启动定时器*/
 
 while (LPC_TMR16B1->TCR & 0x01);           /*等待直到时间到*/
 LPC_TMR16B1->TCR = 0x00;                 /* Close timer --关闭定时器*/
}
void Delay_Ms(unsigned int DelayTimes)
{
 /* * setup timer #1 for delay */
 
 //LPC_SYSCON->SYSAHBCLKCTRL |= (1<<8);       //开启定时器Timer16_1时钟
  LPC_TMR16B1->TCR = 0x02;                 /* reset timer */
  LPC_TMR16B1->PR  = 48000;                 /* set prescaler to zero */
  LPC_TMR16B1->MR0 = DelayTimes;
  LPC_TMR16B1->IR  = 0xff;                 /* reset all interrrupts */
  LPC_TMR16B1->MCR = 0x04;                 /* stop timer on match */
  LPC_TMR16B1->TCR = 0x01;                 /* start timer */
 
 while (LPC_TMR16B1->TCR & 0x01);           /*等待直到时间到*/
 LPC_TMR16B1->TCR = 0x00;                 /* Close timer */
}
void Delay_Sec(unsigned char DelayTimes)
{
 /* * setup timer #1 for delay */
 
 //LPC_SYSCON->SYSAHBCLKCTRL |= (1<<8);       //开启定时器Timer16_1时钟
  LPC_TMR16B1->TCR = 0x02;                 /* reset timer */
  LPC_TMR16B1->PR  = 48000000;             /* set prescaler to zero */
  LPC_TMR16B1->MR0 = DelayTimes;
  LPC_TMR16B1->IR  = 0xff;                 /* reset all interrrupts */
  LPC_TMR16B1->MCR = 0x04;                 /* stop timer on match */
  LPC_TMR16B1->TCR = 0x01;                 /* start timer */
 
 while (LPC_TMR16B1->TCR & 0x01);           /*等待直到时间到*/
 LPC_TMR16B1->TCR = 0x00;                 /* Close timer */
}

关闭窗口

相关文章