|
需要樓主仔細(xì)規(guī)劃時(shí)序!
首先在理論計(jì)算上要能通過(guò)。
必要時(shí)進(jìn)入?yún)R編,自己寫(xiě)最底層的時(shí)序軟件。
你提出的這幾個(gè)任務(wù),相對(duì)還是比較好規(guī)劃的,現(xiàn)在的51就能完成。
PWM:由模塊自動(dòng)完成,問(wèn)題不大。如果自己用定時(shí)器去做,則要求優(yōu)先級(jí)最高。但特別注意,中斷服務(wù)程序必須短,越短越好,必須在此下功夫。
串口通訊:用中斷完成,要點(diǎn):中斷服務(wù)程序中,只做數(shù)據(jù)收發(fā),不要做數(shù)據(jù)分析。數(shù)據(jù)分析放在主程序中進(jìn)行。
AD:用中斷完成。要點(diǎn):中斷服務(wù)程序中,只做數(shù)據(jù)收發(fā),不要做數(shù)據(jù)分析。數(shù)據(jù)分析放在主程序中進(jìn)行。可利用定時(shí)器,定時(shí)標(biāo)記采樣起動(dòng)標(biāo)記,但起動(dòng)命令在主程序中下達(dá)。
DA:需要寫(xiě)入的數(shù)據(jù),事先在主程序中準(zhǔn)備好……
IIC:它是異步帶CLK通訊的,對(duì)脈沖的間隔要求不嚴(yán),也即可以被其它中斷打斷,所以?xún)?yōu)先級(jí)可以放低一點(diǎn)。在時(shí)序,只要CLK符合IIC協(xié)議,基本上就可以了。例如,當(dāng)DATA在數(shù)據(jù)線上準(zhǔn)備好之后,早點(diǎn)讀或遲點(diǎn)讀入,都是可以的。再如,發(fā)出地址時(shí),每個(gè)CLK移出一位地址,但CLK之間的間隔時(shí)間的要求是不嚴(yán)格的,也即,長(zhǎng)一點(diǎn)短一點(diǎn),都可以。
其它邏輯,正常進(jìn)行。程序中盡可能不要用DELAY函數(shù),尤其是中斷服務(wù)程序中,禁用之。
|
|