MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例課件_第1頁
MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例課件_第2頁
MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例課件_第3頁
MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例課件_第4頁
MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MC9S12XS單片機(jī)原理

及嵌入式系統(tǒng)開發(fā)匯報人:某某某匯報時間:2023.X.X第10章

MC9S12XS128周期性中斷定時器模塊及其應(yīng)用實例PIT模塊概述PIT模塊結(jié)構(gòu)和工作原理PIT模塊寄存器及設(shè)置PIT模塊應(yīng)用實例智能車系統(tǒng)中PIT模塊的應(yīng)用 10.1PIT模塊概述周期性中斷定時器(PeriodicInterruptTimer,PIT)模塊是一組24位的定時器,由8位微定時器和16位定時器共同組成,該模塊一般用來觸發(fā)外圍模塊或者喚醒周期性中斷。PIT是一個模數(shù)遞減計數(shù)器,首先給計數(shù)寄存器設(shè)定一個初值,每經(jīng)過一個總線時鐘,8位微定時計數(shù)器做1次減1操作,當(dāng)8位微定時計數(shù)器自減為0時,觸發(fā)被控端16位定時計數(shù)器做1次減1操作,以此類推,當(dāng)16位定時計數(shù)器超時(即自減為0)時,觸發(fā)對應(yīng)中斷。確定的總線時鐘通過計數(shù)器自減可實現(xiàn)定時器功能。10.2PIT模塊結(jié)構(gòu)和工作原理 MC9S12XS128的PIT模塊結(jié)構(gòu)框圖如圖10.1所示。 10.2.1PIT模塊結(jié)構(gòu)圖10.1PIT模塊結(jié)構(gòu)框圖10.2PIT模塊結(jié)構(gòu)和工作原理

由圖10.1可知,PIT模塊是由兩級24位定時器(2個8位遞減計數(shù)器和4個16位遞減計數(shù)器)結(jié)構(gòu)和一個中斷/觸發(fā)接口組成。16位定時器的時鐘由2個可選的微定時基準(zhǔn)提供,微定時基準(zhǔn)的時鐘由8位模數(shù)遞減計數(shù)器產(chǎn)生。每個16位定時器都通過置位PIT復(fù)用寄存器PITMUX中的PMUX0~3來連接微定時基準(zhǔn)0或微定時基準(zhǔn)1。 10.2.1PIT模塊結(jié)構(gòu)10.2PIT模塊結(jié)構(gòu)和工作原理PIT模塊具有以下基本特征:

4個獨立的具有超時周期功能的模數(shù)遞減計數(shù)器;超時周期可編程為總線時鐘周期的1~224倍,超時時間等于m×n倍的總線時鐘周期(1≤m≤256,1≤n≤65536);每個定時器獨立使能;4個超時中斷;4個觸發(fā)外圍模塊的超時觸發(fā)輸出信號;可配置定時器起始通道。 10.2.1PIT模塊結(jié)構(gòu)10.2PIT模塊結(jié)構(gòu)和工作原理 MC9S12XS128的PIT模塊詳細(xì)功能框圖如圖10.2所示。PIT模塊主要由狀態(tài)、控制和數(shù)據(jù)寄存器,兩級結(jié)構(gòu)的24位定時器(2個8位遞減計數(shù)器和4個16位遞減計數(shù)器)和1個中斷/觸發(fā)接口組成。 10.2.2PIT模塊工作原理10.2PIT模塊結(jié)構(gòu)和工作原理 16位定時器的時鐘由2個可選的微時間基準(zhǔn)提供,微時間基準(zhǔn)的時鐘由8位模數(shù)遞減計數(shù)器產(chǎn)生。每個16位定時器都通過設(shè)置PIT復(fù)用寄存器(PITMUX)中的PMUX0~3確定使用微時間基準(zhǔn)0或基準(zhǔn)1。

如果PIT控制和強(qiáng)制裝載微定時寄存器PITCFLMT中的PITE位置1,并且PIT通道使能寄存器PITCE中相應(yīng)的PCE位置1,則該定時器通道使能。2個8位模數(shù)遞減計數(shù)器可產(chǎn)生2個微時間基準(zhǔn),一旦微時間基準(zhǔn)被定時器通道使能,就會啟動相應(yīng)的微定時器模數(shù)遞減計數(shù)器,由PITMTLD0和PITMTLD1寄存器確定裝載初值。當(dāng)微定時模數(shù)遞減計數(shù)器計數(shù)到0時,PITMTLD寄存器將重新裝載初值,同時相應(yīng)的16位模數(shù)遞減計數(shù)器計數(shù)一個周期。當(dāng)16位定時計數(shù)器和相應(yīng)的8位微定時計數(shù)器計數(shù)到0時,PITLD寄存器將重新裝載初值,且相應(yīng)的PIT超時標(biāo)志寄存器PITTF中的超時標(biāo)志位PTF被置1。超時周期是定時裝載寄存器PITLD、微定時裝載寄存器PITMTLD和總線時鐘fBus的函數(shù):

超時周期=(PITMTLD+1)×(PITLD+1)/fBus 10.2.2PIT模塊工作原理10.2PIT模塊結(jié)構(gòu)和工作原理

讀取PITCNT寄存器值可獲取16位模數(shù)遞減計數(shù)器的當(dāng)前值,但微定時遞減計數(shù)器值不可讀。 PIT控制和強(qiáng)制裝載微定時寄存器PITCFLMT中相應(yīng)的強(qiáng)制裝載微定時器位PFLMT寫“1”操作,可重新啟動8位微定時器。PIT強(qiáng)制裝載定時寄存器PITFLT中相應(yīng)的強(qiáng)制裝載定時器位PFLT寫“1”操作,可重新啟動16位定時器。如果需要同時重新啟動一組定時器和微定時器,只要向相應(yīng)的PITCFLMT寄存器和PITFLT寄存器寫入16位數(shù)據(jù)設(shè)置相關(guān)的寄存器位即可。

每個超時事件都可觸發(fā)中斷服務(wù)請求。對于每個定時器通道,PIT中斷使能寄存器PITINTE中的PINTE位使能中斷功能。當(dāng)PIT超時標(biāo)志寄存器PITTF中的相應(yīng)超時標(biāo)志位PTF置1,且PINTE=1時,將產(chǎn)生中斷服務(wù)請求。PTF標(biāo)志位通過寫“1”清零。

注意:為了避免錯誤的中斷請求發(fā)生,當(dāng)PIT中斷請求被掛起時,請務(wù)必重新設(shè)置PITE位、PINTE位和PITCE位。 PIT模塊有四路硬件觸發(fā)信號PITTRIG0~3,對應(yīng)于四個定時器通道。四路觸發(fā)信號也可使能其他功能模塊,例如實現(xiàn)ATD連續(xù)轉(zhuǎn)換模式功能。 10.2.2PIT模塊工作原理10.2PIT模塊結(jié)構(gòu)和工作原理

當(dāng)定時器通道超時時,相應(yīng)的PTF標(biāo)志位置1,同時相應(yīng)的外部觸發(fā)信號PITTRIG觸發(fā)上升沿信號,觸發(fā)信號需要的最小超時周期為兩個總線時鐘。裝載寄存器PITLD=0x0001和微定時裝載寄存器PITMTLD=0x0002進(jìn)行相關(guān)標(biāo)志設(shè)置,強(qiáng)制裝載的觸發(fā)時序和重啟時序如圖10.3所示。 10.2.2PIT模塊工作原理10.2PIT模塊結(jié)構(gòu)和工作原理 PITCFLMT寄存器中的PITE位置1之前,需要先設(shè)置配置寄存器,即需要在PITE位置1之前,寫操作配置寄存器。

當(dāng)PITCE寄存器中、PITINTE寄存器中和PITCFLMT寄存器中的位或PITE位任意一位清零時,相應(yīng)的PIT中斷標(biāo)志位清零。如果PIT中斷請求被掛起,那么可能會產(chǎn)生偽中斷。下面推薦兩種方法避免偽中斷發(fā)生:

①只在中斷服務(wù)子程序(ISR)中清除PIT中斷標(biāo)志位。當(dāng)進(jìn)入中斷服務(wù)子程序時,CCR寄存器中的I可屏蔽位自動置1。PIT位清零之前,I可屏蔽位不能被清零。

②使用SEI指令置位I可屏蔽位之后,PIT中斷標(biāo)志位才可清零,然后使用CLI指令清零I可屏蔽位重新使能中斷。

所有標(biāo)志位通過寫“1”清零,相應(yīng)標(biāo)志位可使用存儲或移動指令寫“1”操作該標(biāo)志位。不允許使用BSET指令,也不允許使用任何編譯成BSET指令的C語句,因為BSET指令是讀-改-寫指令。舉例來說,MOVB#$01,PITTF,則實現(xiàn)了標(biāo)志位0的清零。 10.2.2PIT模塊工作原理10.3PIT模塊寄存器及設(shè)置 MC9S12XS128的PIT模塊共有28個寄存器,其中10個是系統(tǒng)保留寄存器。PIT模塊的內(nèi)存映射表如表10-1所示,表中給出了這些寄存器的地址、用途和訪問權(quán)限。對于每個寄存器,所列的地址是絕對地址,每個寄存器的絕對地址是PIT模塊的基本地址與每個寄存器地址偏移量之和,PIT模塊基本地址是0x0340。10.3PIT模塊寄存器及設(shè)置表10-1

PIT

模塊內(nèi)存映射表寄存器用途訪問方式地

址PIT控制和強(qiáng)制裝載微定時寄存器(PITCFLMT)讀/寫S0340PIT強(qiáng)制裝載定時寄存器(PITFLT)讀/寫S0341PIT通道使能寄存器(PITCE)讀/寫S0342PIT復(fù)用寄存器(PITMUX)讀/寫S0343PIT中斷使能寄存器(PITINTE)讀/寫S0344PIT超時標(biāo)志寄存器(PITTF)讀/寫S0345PIT微微定時裝載寄存器0(PITMTLDO)讀/寫S0346PIT微定時裝載寄存器1(PITMTLD1)讀/寫S0347PIT裝載寄存器0高8位(PITLD0高8位)讀/寫S0348PIT裝載寄存器0低8位(PITLD0低8位)讀/寫S0349PIT計數(shù)寄存器0高8位(PITCNTO高8位)讀S034APIT計數(shù)寄存器0低8位(PITCNTO低8位)讀S034BPIT裝載寄存器1高8位(PITLD1高8位)讀/寫S034CPIT裝載寄存器1低8位(PITLD1低8位)讀/寫S034DPIT計數(shù)寄存器1高8位(PITCNT1高8位)讀S034EPIT計數(shù)寄存器1低8位(PITCNT1低8位)讀S034FPIT裝載寄存器2高8位(PITLD2高8位)讀/寫S0350PIT裝載寄存器2低8位(PITLD2低8位)讀/寫S0351PIT計數(shù)寄存器2高8位(PITCNT2高8位)讀S0352PIT計數(shù)寄存器2低8位(PITCNT2低8位)讀S0353PIT裝載寄存器3高8位(PITLD3高8位)讀/寫S0354PIT裝載寄存器3低8位(PITLD3低8位)讀/寫S0355PIT計數(shù)寄存器3高8位(PITCNT3高8位)讀S0356PIT計數(shù)寄存器3低8位(PITCNT3低8位)讀S035710.3PIT模塊寄存器及設(shè)置 10.3.1PIT控制和強(qiáng)制裝載微定時寄存器(PITCFLMT) PIT控制和強(qiáng)制裝載微定時寄存器(PITControlandForceLoadMicroTimerRegister,PITCFLMT)用來使能PIT模塊、凍結(jié)PIT模塊、控制功耗、設(shè)置PIT工作模式,并強(qiáng)制裝載微定時器的初始值,如圖10.4所示。10.3PIT模塊寄存器及設(shè)置 10.3.1PIT控制和強(qiáng)制裝載微定時寄存器(PITCFLMT) PITE:PIT模塊使能位。當(dāng)PITE為0時,則禁止PIT模塊功能,PIT超時標(biāo)志寄存器PITTF中的標(biāo)志位清零。當(dāng)置位PITE時,能夠使能相應(yīng)定時器位PCE,相應(yīng)裝載寄存器開始向下遞減計數(shù)。 0表示禁用PIT模塊(低功耗模式); 1表示使用PIT模塊。 PITSWAI:等待模式下PIT停止位。 0表示等待模式下,PIT模塊正常運(yùn)行; 1表示等待模式下,PIT模塊停止產(chǎn)生時鐘信號,凍結(jié)PIT模塊。 PITFRZ:凍結(jié)模式下PIT計數(shù)器凍結(jié)位。凍結(jié)模式下,PITFRZ位確定PIT工作狀態(tài)。凍結(jié)模式下,斷點調(diào)試時,該位凍結(jié)PIT計數(shù)器,可有效避免中斷的發(fā)生。 0表示凍結(jié)模式下,PIT模塊正常運(yùn)行; 1表示凍結(jié)模式下,PIT模塊停止計數(shù)。 PFLMT1~PFLMT0:PIT微定時器1和PIT微定時器0強(qiáng)制裝載位。如果相應(yīng)的微定時器激活且PIT模塊使能(PITE=1)時,PFLMT=1,則相應(yīng)的8位微定時器的裝載寄存器值將立即裝載到8位微定時器的遞減計數(shù)器。寫0操作無效;讀取這2位,總是返回0。

注意:強(qiáng)制裝載微定時器值會影響到使用該微定時基準(zhǔn)的所有定時器通道。10.3PIT模塊寄存器及設(shè)置 10.3.2PIT強(qiáng)制裝載定時寄存器(PITFLT) PIT強(qiáng)制裝載定時寄存器(PITForceLoadTimerRegister,PITFLT),用來設(shè)置強(qiáng)制裝載定時器的裝載初值,如圖10.5所示。 PFLT3,PFLT2,PFLT1,PFLT0:PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的強(qiáng)制裝載位。如果相應(yīng)的定時器通道和PIT模塊均使能(PCE=1,PTIE=1),則PFLT位寫1操作,相應(yīng)的16位定時器的裝載寄存器值將裝載到16位遞減計數(shù)器,寫0操作無效;讀取這4位,總是返回0。10.3PIT模塊寄存器及設(shè)置 10.3.3PIT通道使能寄存器(PITCE) PIT通道使能寄存器(PITChannelEnableRegister,PITCE),用來使能PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0通道,如圖10.6所示。 PCE3,PCE2,PCE1,PCE0:PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的通道使能位。如果PCE位清零,則禁用PIT通道,PITTF寄存器中的相應(yīng)標(biāo)志位也會清零。當(dāng)PCE位置1,且PIT模塊使能(PITE=1)時,則16位定時計數(shù)器將裝載初始計數(shù)值,從該初始值開始向下遞減計數(shù)。 0表示禁用相應(yīng)的PIT通道; 1表示使用相應(yīng)的PIT通道。10.3PIT模塊寄存器及設(shè)置 10.3.4PIT復(fù)用寄存器(PITMUX) PIT復(fù)用寄存器(PITMultiplexRegister,PITMUX),用來選擇PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0通道的復(fù)用位,如圖10.7所示。 PMUX3、PMUX2、PMUX1、PMUX0:PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的通道復(fù)用選擇位。這些位選擇相應(yīng)的16位定時器連接的是微定時基準(zhǔn)1還是微定時基準(zhǔn)0;修改PMUX位,則相應(yīng)的16位定時器將會立即切換微定時基準(zhǔn)。 0表示相應(yīng)的16位定時器使用微定時基準(zhǔn)0計數(shù); 1表示相應(yīng)的16位定時器使用微定時基準(zhǔn)1計數(shù)。10.3PIT模塊寄存器及設(shè)置 10.3.5PIT中斷使能寄存器(PITINTE) PIT中斷使能寄存器(PITInterruptEnableRegister,PITINTE),用來使能PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的超時中斷,如圖10.8所示。 PINTE3、PINTE2、PINTE1、PINTE0:PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的超時中斷使能位。該位使能,一旦相應(yīng)PIT通道的PTF標(biāo)志位置位,則允許產(chǎn)生相應(yīng)的中斷服務(wù)請求。當(dāng)中斷被掛起時,該位使能,PTF=1將會立即產(chǎn)生中斷。為了避免該中斷發(fā)生,必須先清零相應(yīng)的PTF標(biāo)志位。 0表示禁止相應(yīng)的PIT通道中斷請求; 1表示允許相應(yīng)的PIT通道中斷請求。10.3PIT模塊寄存器及設(shè)置 10.3.6PIT超時標(biāo)志寄存器(PITTF) PIT超時標(biāo)志寄存器(PITTime-OutFlagRegister,PITTF),用來表示PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的超時標(biāo)志,如圖10.9所示。 PTF3、PTF2、PTF1、PTF0:PIT定時器3、PIT定時器2、PIT定時器1、PIT定時器0的超時標(biāo)志位。當(dāng)相應(yīng)的16位定時模數(shù)遞減計數(shù)器和所選擇的8位微定時模數(shù)遞減計數(shù)器計數(shù)到0時,PTF位置1。該標(biāo)志位通過寫“1”清零,寫0無效。如果通過寫1清零該標(biāo)志位和置位該標(biāo)志位在同一個總線時鐘周期發(fā)生,則該標(biāo)志位仍保持置位狀態(tài)。如果禁用PIT模塊或禁用相應(yīng)的定時器通道,則該標(biāo)志位清零。 0表示相應(yīng)的PIT通道超時未發(fā)生; 1表示相應(yīng)的PIT通道超時已發(fā)生。10.3PIT模塊寄存器及設(shè)置 10.3.7PIT微定時裝載寄存器0和1(PITMTLD0/1) PIT微定時裝載寄存器0和1(PITMicroTimerLoadRegister0和1,PITMTLD0~1),用來設(shè)置PIT微定時器的初始值,如圖10.10所示。 PMTLD7~0:PIT微定時器裝載初值。這8位用來設(shè)置8位微定時器的模數(shù)遞減計數(shù)器的裝載初值,PITMTLD寄存器寫入新的數(shù)值不會重新啟動微定時器。當(dāng)微定時器的計數(shù)值減到零時,則重新裝載PMTLD寄存器值。如果想要立即裝載初值,只要PITCFLMT寄存器中的PFLMT置位就會立即更新新的初值到遞減計數(shù)器。10.3PIT模塊寄存器及設(shè)置 10.3.8PIT裝載寄存器0~3(PITLD0~3) PIT裝載寄存器0~3(PITLoadRegister0to3,PITLD0~3),用來設(shè)置16位模數(shù)遞減計數(shù)器的裝載初值,如圖10.11所示。 PLD15~0:PIT模塊的16位模數(shù)遞減計數(shù)器的裝載初值。為了確保數(shù)據(jù)的一致性,寫入PITLD寄存器的新值必須按照16位訪問進(jìn)行操作,否則不會重啟定時器。當(dāng)定時器向下遞減計數(shù)到0時,則PTF超時標(biāo)志位置1,重新裝載該寄存器值。如果想要立即裝載初值,只要PITFLT寄存器中的PFLT置位就會立即更新新的初值至計數(shù)器。10.3PIT模塊寄存器及設(shè)置 10.3.9PIT計數(shù)寄存器0~3(PITCNT0~3) PIT計數(shù)寄存器0~3(PITCountRegister0to3,PITCNT0~3)中存放的是16位模數(shù)遞減計數(shù)器的當(dāng)前值,如圖10.12所示。 PCNT15~0:該寄存器中的16位表示16位模數(shù)遞減計數(shù)器的當(dāng)前值,讀取該計數(shù)寄存器的值必須在一個時鐘周期內(nèi)按照16位訪問進(jìn)行操作。10.4PIT模塊應(yīng)用實例

本實例利用PIT模塊實現(xiàn)1s精確定時,假設(shè)fBus為8MHz,當(dāng)定時時間到,使MC9S12XS128的PB口連接的低4位LED燈左移一位顯示控制。實例硬件電路圖如圖10.13所示,PORTB端口的低4位連接4只LED,編程實現(xiàn)定時4只流水燈控制操作。10.4PIT模塊應(yīng)用實例

程序清單如下所示。10.4PIT模塊應(yīng)用實例10.4PIT模塊應(yīng)用實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論