看了妳追問的,原來是四路每壹路都產生變化的波形。那個也好辦。可以通過計算,把這幾個波形統壹起來成壹個周期,比如開始0.5ms到了,讓定的值取反,再加19.5再取反,再加1.3Ms再取反,再加18.7ms再取反...然後壹直這樣把幾個都寫完。
還有種方法,來改變第壹個pwm的設定值。比如放數組裏壹***5個設定值,分別代表妳設定的高電平時間,依次替換第壹個定時器裏面的中端時間即可。
當然,前兩種都差不多,還有壹種方法供妳擴展:就是用兩個定時器,然後按照時間去匹配修改。當然,51單片機那精度就不說了,不太確信可以達標,壹個定時器進中斷了,另壹個就要停壹下。。
BTW,個人感覺51的單片機沒有很好的pwm模塊,這樣寫了Pwm程序,別的就幹不了了。建議用用帶epwm模塊的mcu,直接調用epwm和epwm中斷,節省cpu資源,可以多寫很多程序。