582M死機

使用2線仿真進行調試。 發(fā)現代碼卡死在了 ADC讀取中。

image.png


在論壇里面翻了翻帖子。 發(fā)現有人回復過,

http://m.findthetime.net/bbs/thread-81569-1.html

原因是在中斷里面使用ADC會與其他正在使用ADC的代碼進行沖突。


我現在項目需要在中斷里面采集adc。 有什么辦法可以解決這個問題嗎。


以前的項目也有在中斷里面采集adc,沒有使用藍牙功能 , 沒有出現過死機的情況,藍牙會有影響的嗎?



既然使用藍牙功能,可以嘗試寫一個TMOS任務來管理ADC數據采集,驗證是否可行。


我的應用場景是?

100us的中斷,每200次中斷,需要采集一次adc數據進行計算。

沒法將adc采集放到tmos任務里面。


如果我一定需要在中斷里面進行adc采集, 該如何避免死機呢?

溫度校準那里是多久調用一次呢? 一次需要多久呢? 使用原子操作對中斷的精度影響大嗎。


1、在中斷里置標志,達到一定的條件則開始執(zhí)行該TMOS任務;

2、執(zhí)行開始前關閉全局中斷,結束后開全局中斷;

3、溫度校準是TMOS管理的,兩分鐘執(zhí)行一次校準。



溫度校準:

斷點1:

? ? R8_ADC_CONVERT |= RB_ADC_START;

斷點2:

? ? while(R8_ADC_CONVERT & RB_ADC_START);


中斷中adc采集:

? ? R8_ADC_CONVERT = RB_ADC_START;

? ? while(R8_ADC_CONVERT & RB_ADC_START);


斷點1時進入中斷,不影響.


如果在斷點2進入了中斷,中斷里面進行adc采集.?

RB_ADC_START 會在為1的狀態(tài)下,再次設置為1.? 應該沒影響.

中斷里面獲取到的adc數據應該是溫度校準的adc數據吧.

中斷退出后,回到斷點2,應該會再拿一次溫度校準的adc數據.

這個過程,應該不會出現 卡死在 while中的情況呀.


我現在跑的項目 卻是會卡死在while里面.?


請幫忙更詳細分析一下??

"中斷中使用ADC? 與tmos中正進行的ADC采集產生沖突 導致死機"

是在哪一步出現了異常,導致 while無法結束.


順便問下 .? ?32k 是使用的是內部RC

這2個校準的 如果不啟用,對整個系統(tǒng)的穩(wěn)定性和精度影響大嗎



image.png



只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频