freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)類畢業(yè)設(shè)計(jì)外文翻譯-資料下載頁

2024-11-23 19:33本頁面

【導(dǎo)讀】Equation1).improvement,x=2).

  

【正文】 使用滾動平均計(jì)算平均值時(shí),對于同一樣品公式 3同樣適用。圖 3 中的橙色表示 t0、 t t2的延時(shí)值(分別用 d0、 d1和 d2表示)。 注 意:在使用滾動平均時(shí),處理器必須要額外的處理樣品緩沖區(qū)中的每個中斷請求。 設(shè)計(jì)與實(shí)現(xiàn) Luminary Micro的 ADC模塊的采樣定序程序采用單一觸發(fā)器通過簡單的過采樣技術(shù)收集 17 組獨(dú)特的樣品值(從任何通道),這為軟件提供了一個靈活性的手段以便在任何的給定時(shí)間給過采樣程序提供一定數(shù)量的通道。 本章節(jié)介紹了使用 Stellaris 微控制器實(shí)現(xiàn)過采樣的各種方法。方法有很多,使用組合采樣序列生成器工作,模數(shù)轉(zhuǎn)換器的觸發(fā)和中斷,這里所介紹的例子都是應(yīng)用性較廣的技術(shù)。 這里所有的例子的代碼都 來自 Stellaris 系列驅(qū)動程序庫的 ADC 功能。本應(yīng)用指南中的所有例子和源代碼的驅(qū)動程序都可在 Luminary Micro 的官方網(wǎng)站中找到( 過采樣次數(shù)達(dá)到 8 次時(shí)使用驅(qū)動程序庫功能 Stellaris 驅(qū)動程序庫中內(nèi)置了一個采樣次數(shù)在 8 次以下的過采樣程序。對于大多數(shù)應(yīng)用程序,這一級別的過采樣已經(jīng)足夠了,因?yàn)楦倪M(jìn)有效位數(shù)( ENOB)只有 位。 對于輸入信號的過采樣來說, 使用驅(qū)動程序庫的采樣功能是最簡單的方法。配置一個“典型”的 ADC與過采樣轉(zhuǎn)換之間的主要區(qū)別在于函數(shù)的調(diào)用。采樣函數(shù)帶有過采樣 ADC 軟件前綴,很容易與標(biāo)準(zhǔn) ADC 功能區(qū)分。一旦 ADC 轉(zhuǎn)換過程被確定( ADC 采樣頻率、觸發(fā)源、通道等),可以直接寫出代碼。舉例來說,用這個代碼設(shè)置一個 10ms 的周期性轉(zhuǎn)換(由定時(shí)器定時(shí)),采樣數(shù)為 8時(shí)過采樣的代碼段如例 1 所示。 例 1 采樣次數(shù)為 8 次的過采樣的驅(qū)動程序 代碼段 . 模數(shù)轉(zhuǎn)換器配置 驅(qū)動程序庫功能 // // Initialize the ADC to oversample channel 1 by 8x using sequencer 0. // Sequencer will be triggered by one of the generalpurpose timers. // 19 ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_TIMER, 0)。 ADCSoftwareOversampleConfigure(ADC_BASE, 0, 8)。 ADCSoftwareOversampleStepConfigure(ADC_BASE, 0, 0, (ADC_CTL_CH1 \ | ADC_CTL_IE | ADC_CTL_END))。 // // Initialize Timer 0 to trigger an ADC conversion once every 10 milliseconds // TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER)。 TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / 100)。 TimerControlTrigger(TIMER0_BASE, TIMER_A, true)。 當(dāng)采樣完成時(shí) ADC 的配置中顯示代碼段 發(fā)出中斷指令,意味著中斷處理程序必須執(zhí)行(見代碼段 )。由于驅(qū)動程序的過采樣功能自動平均采樣數(shù)據(jù),中斷處理程序的作用是相對基本的。記住在每個中斷期間的用于計(jì)算開銷的中斷處理程序。 代碼段 ADC 的中斷處理程序 void ADCIntHandler(void) { long lStatus。 // // Clear the ADC interrupt // ADCIntClear(ADC_BASE, 0)。 // // Get averaged data from the ADC // lStatus = ADCSoftwareOversampleDataGet(ADC_BASE, 0, amp。g_ulAverage)。 // // Placeholder for ADC processing code // } 當(dāng)配置步和中斷處理程序執(zhí)行到適當(dāng)?shù)奈恢脮r(shí),轉(zhuǎn)換過程開始。在定時(shí)器開始運(yùn)行(開始計(jì)時(shí))之前, ADC 定序程序與中斷處理程序必須啟用(見代碼段)。 代碼段 使能 ADC 和中斷 // // Enable ADC sequencer 0 and its interrupt (in both the ADC and NVIC) // ADCSequenceEnable(ADC_BASE, 0)。 ADCIntEnable(ADC_BASE, 0)。 IntEnable(INT_ADC0)。 20 // // Enable the timer and start conversion process // TimerEnable(TIMER0_BASE, TIMER_A)。 采樣次數(shù)超過 8 次使用多重定序器或定時(shí)器 當(dāng)采樣次數(shù)超過 8 次時(shí)這個驅(qū)動程序的功能是有限的(基于樣本定序器硬件的局限性)。也就是說,當(dāng)用于需要較大樣品數(shù)的過采樣時(shí),必須使用另一種方法代替執(zhí)行。本文介紹兩種處理這種情況的方法:使用多重定序器和用定時(shí)器計(jì)算過采樣頻率。 例 2 運(yùn)用多重定序器情況下采樣次數(shù)為 16 次的過 采樣 靈活的采樣序列生成器允許各種各樣的配置。在樣品數(shù)超過 16時(shí),可以用0- 2 定序器,因?yàn)槠錁颖究倲?shù)是 16個( 8+ 4+ 4)。對于這一水平的過采樣工作,所有這一序列中的定序器必須應(yīng)用同一樣本的模擬輸入,這意味著,使用多個模擬輸入的定序器失去了作用。 代碼段 0- 3個定序器,這樣就省去了復(fù)雜的觸發(fā)配置。如果要取得理想的結(jié)果,配置樣本定序器的優(yōu)先權(quán),使得樣本定序器 2 的優(yōu)先權(quán)最低(最后的樣本),定時(shí)器 2的“結(jié)束”中斷被定為為轉(zhuǎn)換的最后一步(如圖 4所示)。 21 圖 4 樣品數(shù)為 16的過采樣 代碼段 模數(shù)轉(zhuǎn)換器配置 多個采樣定序器 // // Initialize the ADC for 16x oversampling on channel 1 using sequencers // 02. The conversion is triggered by a GPTM. // ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_TIMER, 0)。 ADCSequenceConfigure(ADC_BASE, 1, ADC_TRIGGER_TIMER, 1)。 ADCSequenceConfigure(ADC_BASE, 2, ADC_TRIGGER_TIMER, 2)。 // // Configure sequence steps for sequencer 0 // ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 1, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 2, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 3, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 4, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 5, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 6, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 0, 7, (ADC_CTL_CH1 | ADC_CTL_END))。 // // Configure sequence steps for sequencer 1 // 22 ADCSequenceStepConfigure(ADC_BASE, 1, 0, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 1, 1, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 1, 2, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 1, 3, (ADC_CTL_CH1 | ADC_CTL_END))。 // // Configure sequence steps for sequencer 2 // ADCSequenceStepConfigure(ADC_BASE, 2, 0, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 2, 1, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 2, 2, ADC_CTL_CH1)。 ADCSequenceStepConfigure(ADC_BASE, 2, 3, (ADC_CTL_CH1 | ADC_CTL_IE \ | ADC_CTL_END))。 在代碼段 中斷處理程序必須從該先進(jìn)先出 (FIFO) 隊(duì)列收集數(shù)據(jù),并執(zhí)行平均計(jì)算。這里并沒有使用到 ADC 的獲取序列數(shù)據(jù)功能,因?yàn)槲唇?jīng)過處理功能開銷就得到了 期望的結(jié)果,所以直接寄存器用于空讀取定序器的“先入先出”隊(duì)列。利用 ADC 的獲取序列數(shù)據(jù)功能來定義一個額外的 8通道樣品緩沖區(qū)。在中斷處理程序中,即使讀取直接寄存器的內(nèi)容,還會計(jì)算開銷的總和與執(zhí)行平均值計(jì)算程序。 代碼段 ADC 的中斷處理程序 void ADCIntHandler(void) { unsigned long ulIdx。 unsigned long ulSum = 0。 // // Clear the interrupt // ADCIntClear(ADC_BASE, 2)。 // // Get the data from sequencer 0 // for(ulIdx = 8。 ulIdx。 ulIdx) { ulSum += HWREG(ADC_BASE + ADC_O_SSFIFO0)。 } // // Get the data from sequencers 1 and 2 // for(ulIdx = 4。 ulIdx。 ulIdx) { ulSum += HWREG(ADC_BASE + ADC_O_SSFIFO1)。 ulSum += HWREG(ADC_BASE + ADC_O_SSFIFO2)。 23 } // // Average the oversampled data // g_ulAverage = ulSum 4。 // // Placeholder for ADC processing code // } 在開始轉(zhuǎn)換過程之前,啟用樣品定序程序和中斷(見代碼段 ) 代碼段 使能 ADC 和中斷 // // Enable the sequencers and interrupt // ADCSequenceEnable(ADC_BASE, 0)。 ADCSequenceEnable(ADC_BASE, 1)。 ADCSequenceEnable(ADC_BASE, 2)。 ADCIntEnable(ADC_BASE, 2)。 IntEnable(INT_ADC2)。 // // Enable the timer and start conversion process // TimerEnable(TIMER0_BASE, TIMER_A)。 例 3 使用運(yùn)行在采樣頻率下運(yùn)用的定時(shí)器處理采樣次數(shù)為 16次時(shí)的過采樣 另一種過采樣的方法是運(yùn)用定時(shí)器運(yùn)行于過采樣頻率之下(不占用很大一步分 ADC 定序器資源)。例如,如果每隔 10毫秒轉(zhuǎn)換必 須回到主程序并且完成16次采樣,配置一個定時(shí)器就可以在每 625 微秒進(jìn)行一次采樣。一個運(yùn)行在過采樣頻率下的定時(shí)器在引發(fā)轉(zhuǎn)換時(shí)會引發(fā) ADC 中斷,這些都應(yīng)該在程序中變現(xiàn)出來。 配置 ADC 和操作定時(shí)器的代碼見代碼段 代碼段
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1