接上,不小心发布了,
5.把以上调试好的程序与LED对接,加入循环效果,即可做到呼吸灯
以下是PIC单片机的呼吸灯子程序 可作为参考:
/*====================================================== */
/* 程序名:LED控制程序 */
/* 输入参数:无 */
/* 输出参数: */
/* 其他: */
/*====================================================== */
void LED_CONTROL(void)
{
//以下LED的PWM测试程序
if(WORK_MODEL == REMOVAL_MODEL) //撤防模式下
{
if(brake_logic == 0) gr_pwm_value = 0;
else gr_pwm_value = 250;
if(blue_bit != STEP_1)
{
bl_pwm_value+=2;
if(bl_pwm_value >= 248) blue_bit = STEP_1;
}
else
{
bl_pwm_value-=2;
if(bl_pwm_value <= 40) blue_bit = STEP_0;
}
}
else if(WORK_MODEL == ACC_MODEL) //ACC模式下
{
if(brake_logic == 0)
{
gr_pwm_value = 0;
bl_pwm_value = 100;
}
else
{
blue_bit+=5;
if(blue_bit <= 80)
{
gr_pwm_value = 0;
bl_pwm_value = 100;
}
else if(blue_bit <= 160)
{
gr_pwm_value = 100;
bl_pwm_value = 100;
}
else
{
gr_pwm_value = 100;
bl_pwm_value = 0;
}
}
}
else if(WORK_MODEL == ON_MODEL) //ON模式下
{
if(brake_logic == 0)
{
gr_pwm_value = 0;
bl_pwm_value = 250;
}
else
{
blue_bit+=5;
if(blue_bit <= 80)
{
gr_pwm_value = 0;
bl_pwm_value = 250;
}
else if(blue_bit <= 160)
{
gr_pwm_value = 250;
bl_pwm_value = 250;
}
else
{
gr_pwm_value = 250;
bl_pwm_value = 0;
}
}
}
else if(WORK_MODEL == START_MODEL || WORK_MODEL == PROTECT_START_MODEL || WORK_MODEL == REMOVAL_START_MODEL)
{
gr_pwm_value = 250;
bl_pwm_value = 0;
}
else
{
gr_pwm_value = 0;
bl_pwm_value = 0;
blue_bit = STEP_0;
}
PWM6_LoadDutyValue(bl_pwm_value);
PWM7_LoadDutyValue(gr_pwm_value);
}