|
前幾天調(diào)試了一下DS18B20的程序,起初系統(tǒng)在裸奔的時候DS18B20可以很正常的讀取數(shù)據(jù)。由于項目前期設(shè)計時添加了ucos實時操作系統(tǒng)。原以為把裸奔的程序移植過來就可以使用。結(jié)果悲劇發(fā)生了……如果做過這方面的朋友一定知道。添加后,你會發(fā)現(xiàn)系統(tǒng)不跑了,徹底的死掉了。原因在何處?經(jīng)過一整天的查找,發(fā)現(xiàn)原來系統(tǒng)的時間片被占用了。導(dǎo)致ucos的ticks出現(xiàn)異常。
解決辦法:一種方法是:修改OS_CPU_SysTickInit(void)函數(shù),與delay函數(shù)進行兼容。在溫度傳感器延時的時候不影響操作系統(tǒng)的tick運行。這樣就可以解決問題了。
還有一種方法就是,把18B20的延時定時器更換成TIM3或者是其他定時器。和系統(tǒng)的tick分開。即可解決。
|
評分
-
查看全部評分
|