#include
/**************************************************************
上电初始占空比为90%,LED显示一般亮度,一旦键按下,占空比增加直到最高后回到90占空比
可以看到LED的亮暗变化
**************************************************************/
unsigned char temp=90;// 设置占空比初始值为90
void GPIO_INIT()//PD3上拉输入,开中断
{
PD_CR1_C13=1;
PD_CR2_C23=1;
}
void EXTI_INIT()//外部中断初始化
{
EXTI_CR1=0X80;//PD口下降沿触发中断
}
#pragma vector=0x08//GPIOD中断向量号是6,+2即可
__interrupt void EXTI_PD3()
{
temp++;//占空比+1
if(temp==99)//到99回到初始值
{
temp=90;
}
}
void main()
{
asm("sim");//关闭全局中断
GPIO_INIT();
EXTI_INIT();
asm("rim");//打开全局中断
while(1)
{
TIM1_ARRH=0;
TIM1_ARRL=99;//自动重装载值0-99
TIM1_CCR1H=0;
TIM1_CCR1L=temp;//通道1设置占空比(temp/(99+1)
TIM1_CCMR1=0x60;//PWM模式1
TIM1_CCER1_CC1E=1;//使能OC1
TIM1_CR1_CEN=1;//使能TIM1
TIM1_BKR_MOE=1;//禁止刹车
}
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』