電源的軟件管理
電源管理狀態(tài)就是全速工作狀態(tài)與消耗電力最低的休眠狀態(tài)。所以電源管理的主要任務(wù)就是適時(shí)地在全速工作狀態(tài)和休眠狀態(tài)間切換,從而達(dá)到節(jié)省電力的目的。具體的設(shè)計(jì)思路是在系統(tǒng)初始化時(shí)生成一個(gè)內(nèi)核守護(hù)線(xiàn)程,該線(xiàn)程每隔一定時(shí)間檢查一次系統(tǒng)狀態(tài),如果系統(tǒng)持續(xù)處于空閑狀態(tài)的時(shí)間大于預(yù)設(shè)值,就調(diào)用匯編指令使系統(tǒng)進(jìn)入休眠,直至用戶(hù)操作將其喚醒。
1.喚醒
當(dāng)用戶(hù)試圖喚醒系統(tǒng)時(shí),ARM要從Sleep狀態(tài)恢復(fù)到正常工作狀態(tài),需要經(jīng)過(guò)一個(gè)蘇醒的過(guò)程,該過(guò)程初期的動(dòng)作與正常的Reset過(guò)程一樣。
加入這些代碼之后就可以正常將系統(tǒng)由睡眠狀態(tài)喚醒了。
2.切換到睡眠狀態(tài)
主要功能是保存棧地址,清除數(shù)據(jù)緩存,將內(nèi)存置為自我刷新?tīng)顟B(tài)等。當(dāng)所有步驟按順序完成后,執(zhí)行:
將系統(tǒng)切換進(jìn)睡眠狀態(tài)。
3.電壓的采集
電壓采集是一個(gè)簡(jiǎn)單的程序,可以使系統(tǒng)跟蹤當(dāng)前的電壓情況。
數(shù)據(jù)采集任務(wù)Vo_Sampling_Task()中用OSTimeDly()函數(shù)實(shí)現(xiàn)4個(gè)節(jié)拍延時(shí),即每隔4×0.5=2ms任務(wù)執(zhí)行一次,這就保證了20ms采樣10個(gè)點(diǎn)的取樣速率。
評(píng)論