單片機驅(qū)動心得
單片機驅(qū)動類型:
大循環(huán)查詢,定時器中查詢,中斷 ,DMA中斷
大循環(huán)查詢,對于大循環(huán)時間很依賴,所以一般來說只做啟動或者停止之類工作,過程工作交給中斷或者DMA中斷做
定時器查詢,如果大循環(huán)時間不定,那么可以專門開一個定時器,中斷中不斷的循環(huán)查詢或者啟動中斷之類,這個既不堵塞大循環(huán)也不依賴大循環(huán)時間,只是比較耗費cpu資源,不一定有那么多的定時器給你用,可以多個驅(qū)動共用一個定時器,定時器中計數(shù),定時器查詢沒有大循環(huán)的缺點,只是和中斷等比起來實時性稍微差點,因為定時器查詢時定時器不能太頻繁
中斷,數(shù)據(jù)量不大時,或者每個中斷都要應(yīng)用層處理時
DMA中斷,數(shù)據(jù)量比較大,要求后臺的方式,效率要求時,和大循環(huán)時間無關(guān),
設(shè)計驅(qū)動的要求:驅(qū)動不能堵塞大循環(huán),不能依賴大循環(huán)時間
驅(qū)動最佳是DMA中斷,但是具體驅(qū)動看類型, 很多的驅(qū)動隨便寫寫就可以了,不用DMA
操作系統(tǒng)類型:
如果有操作系統(tǒng),寫驅(qū)動會舒服很多, 例如iic或者spi可以在驅(qū)動中死等,反正等的時候, 放棄cpu即可,就是時間片不能太小, 其實對于大部分驅(qū)動來說,對實時要求沒有那么高的。
選擇:
要求最高的就用DMA中斷
一般就用定時器中查詢或者設(shè)備中斷
在次之,就在大循環(huán)中查詢
根據(jù)具體要求,沒有一定。。。
中斷,數(shù)據(jù)量不大時,或者每個中斷都要應(yīng)用層處理時
DMA中斷,數(shù)據(jù)量比較大,要求后臺的方式,效率要求時,和大循環(huán)時間無關(guān),
設(shè)計驅(qū)動的要求:驅(qū)動不能堵塞大循環(huán),不能依賴大循環(huán)時間
驅(qū)動最佳是DMA中斷,但是具體驅(qū)動看類型,
操作系統(tǒng)類型:
如果有操作系統(tǒng),寫驅(qū)動會舒服很多,
選擇:
要求最高的就用DMA中斷
一般就用定時器中查詢或者設(shè)備中斷
在次之,就在大循環(huán)中查詢
根據(jù)具體要求,沒有一定。。。
評論