音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

有關C語言的簡單問題,請高手指教。

作者:action99 欄目:單片機
有關C語言的簡單問題,請高手指教。
下面是一個延時的程序,在一些資料上看到一個公式:14+(3*(Y-1)+7)*(X-1)。X=10,Y=20。這樣的算出來的結果是590US;但是我用示波器測出來的大約時間是:730US。如何才可以算的準確?



void main(void){
    init();
  while(1){
    asm("clrwdt");
    RA0=1;
    delay1(10,20);
    RA0=0;
    delay1(10,20);
}
}
void init(){    
    STATUS=0x00;
    TRISA=0x00;
    TRISB=0x00;
    OPTION=0x06;
    TMR0=178;
    INTCON=0x0c0;
    //TMR0IE=1;           //沒有開定時

    PORTA=0;
    PORTB=0;
    flag=0;    
}
    

void delay1(x,y){
  CHAR z;
  do{
  z=y;
  do{;}while(--z);
  }while(--x);
}


void interrupt                //10ms
timer0_isr(void) @ 0x10{
    TMR0IF=0;
     TMR0=178;
     PORTB=0x7e;
       if(flag_0){
         RA1=1;
       }
       if(flag_0==0){
         RA1=0;
       }
       if(flag_0)flag_0=0;
       else flag_0=1;
}



2樓: >>參與討論
yuands
軟件仿真
 
3樓: >>參與討論
yewuyi
請問一下你是怎么用示波器測量了?
 
4樓: >>參與討論
action99
直接測出RA0的頻率,就可以看到高電位的時間。
直接測出RA0的頻率,就可以看到高電位的時間。

5樓: >>參與討論
蘭天白云
以實測為準
C語言寫的延時應以以實測為準,因為編譯有點不理想

6樓: >>參與討論
zbo007mm
軟件仿真
最好的辦法是軟件仿真,同時也提醒:C的延時很難算得準。

7樓: >>參與討論
wolfererer
編譯以后看匯編~:)
 
8樓: >>參與討論
Xuedong
軟仿真是最準的,可以精細調節(jié)呀。
 
參與討論
昵稱:
討論內容:
 
 
相關帖子
過零檢測來調節(jié)電網(wǎng)電壓
奇怪的問題
PIC18F252怎么接40M晶振?謝謝!
鍵盤程序探討
PIC 帶進位位循環(huán)左移指令 RLF
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號