這個是51單片機的程式,PWM是隨機取的名字,本身沒有PWM硬體。我這個程式目的是通過改變定時器初值來控制占空比的,但是程式中這個定時器TH0一直不管運行多少次都是在0x00地址,怎么修改這個程式呢

uj5u.com熱心網友回復:
樓主選取的斷點位置不對。在time++處斷點,程式計時到0才能進入中斷處理函式,此時的TH0肯定是0x00。在PWM=0或者PWM=1的位置加斷點可以查看TH0的初始值。
uj5u.com熱心網友回復:
樓上正解,TH0 加到 0xFF 產生中斷,但你仿真進到 interrupt 1 時, TH0 確實是 0。你代碼能滿足的你的要求,雖然寫的不好。比如定時初值改為宏定義, time如果不需要計數, 可以用 bool 型,然后
time =~ time ;
if(time){
}else{
}
如果不用 bool 型,則
if(time & 0x01){
}else{
}
[/code]
8位機,盡量不要用 16位數,沒有硬體乘除法的,盡量不用乘除法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/17249.html
標籤:單片機/工控
