查看完整版本: servo來回擺動不順暢
頁: [1]

bob003452002 發表於 2012-8-16 04:26 PM

servo來回擺動不順暢

近日參考了網路上前輩分享的程式之後
sites.google.com/site/nyosawu/8051zhuan-lan/8051kong-zhi-ci-fu-jimg995
已經可以固定位置的轉動
在經過自行修改之後
目的希望可以自動的來回擺動
但經過多種迴圈測試之後
依然會擺動不順暢
請教板上的前輩有什麼比較建議的迴圈寫法嗎?
在此附上程式碼:
#include <at89x51.h>
unsigned int dutytime=45536;   
unsigned int ton=10000;      
unsigned int toff=10000;      
unsigned int temp;   
void delay(unsigned int);

void timer0_initialize(void)   
{
    EA=0;                       
    TMOD=0x01;                 
    temp=65536-dutytime;      
    TH0=temp/256;              
    TL0=temp%256;              
    TR0=1;                     
    EA=1;
        ET0=1;                    
}
void timer0_isr(void) interrupt 1
{                                                         
    if(P2_0==1)
    {
    temp=65536-toff;
    TH0=temp/256;
    TL0=temp%256;
    P2_0=0;
    }
    else
    {
    temp=65536-ton;
    TH0=temp/256;
    TL0=temp%256;
    P2_0=1;
    }
}
void main(void)               
{
        timer0_initialize();  
        no1:                              
while(1)
{
if(P1_0==0)
{
        while(1)
        {
                ton=2200;
                toff=20000-ton;
                delay(10000);
                ton=900;
                toff=20000-ton;
                delay(10000);
                if(P1_1==0)
                goto no1;
        }
}      
if(P1_1==0)   
{
        while(1)
        {
                ton=2200;
                toff=20000-ton;
                delay(10000);
                ton=1500;
                toff=20000-ton;
                delay(10000);
                if(P1_0==0)
            goto no1;
        }
}         
}
}               
void delay(unsigned int time)
{
        unsigned int n;
        while(time>0)
        {
                n=120;
                while(n>120)
                n--;
                time--;
        }
}

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]