此文学习总结,代码可参考
1.delay延时(蓝桥杯主板程序LED)
原理:通过延时函数控制灯使亮暗时间不一样,使得占空比不同,实现亮度控制
优缺点:类似于PWM但是无法做到精确控制亮度占比,如使某个灯的亮度为50%
void Delay_Led(u16 temp)
{
u16 i=temp;
for(i=i; i>0; i--); //delay
}
void LED_light_control(void)
{
unsigned char i, j, k;
for(i=0; i<16; i++)
{
for(j=0; j<16-i; j++)
for(k=8; k<16; k++)
{
GPIO_Write(GPIOC,~(1<<k));
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_ResetBits(GPIOD,GPIO_Pin_2); //状态锁存
Delay_Led(1<<k);
}
}
}
2.定时器中断
原理:在频率足够大,中断足够快的条件下,使得在一定周期内,每个灯亮的概率不同,从而控制占空比的不同,使得最终灯的亮暗不同
优缺点: