您现在的位置: 主页 > MCU > 单片机技术应用 > lpc1768的PWM使用 -
本文所属标签:
为本文创立个标签吧:

lpc1768的PWM使用 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]//p2.0 pwm1.1void ALS_Init(void) //初始化{ LPC_SC->PCONP|=(1

//p2.0 pwm1.1

本文引用地址: http://www.21ic.com/app/mcu/201808/782933.htm

void ALS_Init(void) //初始化

{

LPC_SC->PCONP|=(1<<1)|(1<<2)|(1<<15);//打开时钟

LPC_SC->PCLKSEL0&=~(3<<2); //时钟25M

LPC_SC->PCLKSEL0&=~(3<<4);

//p2.0

LPC_PINCON->PINSEL4&=~(0X03L<<0); //GPIO

LPC_PINCON->PINMODE4&=~(0X03L<<0); //使能上拉

LPC_PINCON->PINMODE_OD2&=~(0X01<<1); //推挽正常模式

P2dir(0)=1;//输出

LPC_TIM1->TCR|=(1<<1); //复位定时器

LPC_TIM1->CTCR=0x00; //定时器模式

LPC_TIM1->PC=0X00;

LPC_TIM1->PR=25-1; //预分频,计数频率1m

LPC_TIM1->MR0=20; //25*100 2500 频率10K

LPC_TIM1->MR1=100;

LPC_TIM1->MCR|=((1<<0)|(1<<3)|(1<<4)); //MR0与TC值匹配时将产生复位 产生中断 MR1匹配时产生中断 不复位

LPC_TIM1->IR|=0XFF; //清所有中断标志位

LPC_TIM1->TCR=(1<<0); //启动定时器

NVIC_EnableIRQ(TIMER1_IRQn);

}

void ALS_Set_Duty(u8 duty) //设置占空比

{

LPC_TIM1->TCR=0; //暂停定时器

if(duty>=100)duty=99;

if(duty==0)duty=1;

LPC_TIM1->MR0=duty;

LPC_TIM1->TCR=(1<<0); //启动定时器

}

void ALS_Stop(void)

{

LPC_TIM1->TCR=0; //暂停定时器

P2low(0)=1; //电平恒定

}

void TIMER1_IRQHandler(void)

{

NVIC_ClearPendingIRQ(TIMER1_IRQn);

if(LPC_TIM1->IR&0x01)//mr0中断

{

P2low(0)=1;

LPC_TIM1->IR|=(1<<0); //清中断标志

}

elseif(LPC_TIM1->IR&0x02)

{

P2high(0)=1;

LPC_TIM1->IR|=(1<<1); //清中断标志

}

}




              查看评论 回复



 

"lpc1768的PWM使用 -"的相关文章

网站地图

围观()