OpenEdv-开源电子网

标题: pwm呼吸灯程序 [打印本页]

作者: 杨懿_学员    时间: 2017-7-21 09:58
标题: pwm呼吸灯程序
int main(void)
{   
     u16 i,j;     
     
    delay_init();        //延时函数初始化      
    LED_Init();              //初始化与LED连接的硬件接口
    while(1)
    {

        for(i=1;i<1500;i++)
        {        
            LED0=0;    delay_us(i);     
            LED0=1;    delay_us(1500-i);
        }
        for(j=1500;j>1;j--)
        {
            LED0=0;    delay_us(j);     
            LED0=1;    delay_us(1501-j);
        }
        
    }
}

作者: 原子哥    时间: 2017-7-22 12:20
前面,每个周期延时为:i+(1500-i)=1500us=1.5ms。你现在循环的是1500次。。。。你计算一下是多少时长?
作者: 杨懿_学员    时间: 2017-7-22 20:15
openedvadmin 发表于 2017-7-22 12:20
前面,每个周期延时为:i+(1500-i)=1500us=1.5ms。你现在循环的是1500次。。。。你计算一下是多少时长?

,张老师真细心,我都没注意时间的问题了,现在整好3秒一个周期了,不过我感觉这种写法还是不人性化,起码这个周期还要自己去根方出来。

int main(void)
{       
         u16 i,j;         
         
        delay_init();            //延时函数初始化          
        LED_Init();                          //初始化与LED连接的硬件接口
        while(1)
        {

                for(i=1;i<1732;i++)
                {               
                        LED0=0;        delay_us(i);         
                        LED0=1;        delay_us(1732-i);
                }
                for(j=1;j<1732;j++)
                {
                        LED0=0;        delay_us(1732-j);         
                        LED0=1;        delay_us(j);
                }
               
        }
}




欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/) Powered by Discuz! X3.4