ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程:第9章 S3C44B0-2410硬件結(jié)構(gòu)與關(guān)鍵技術(shù)分析_第1頁
ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程:第9章 S3C44B0-2410硬件結(jié)構(gòu)與關(guān)鍵技術(shù)分析_第2頁
ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程:第9章 S3C44B0-2410硬件結(jié)構(gòu)與關(guān)鍵技術(shù)分析_第3頁
ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程:第9章 S3C44B0-2410硬件結(jié)構(gòu)與關(guān)鍵技術(shù)分析_第4頁
ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程:第9章 S3C44B0-2410硬件結(jié)構(gòu)與關(guān)鍵技術(shù)分析_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章S3C44B0/S3C2410硬件結(jié)構(gòu)

與關(guān)鍵技術(shù)分析S3C44B0是基于ARM7TDMI架構(gòu)的,S3C2410是基于ARM920T架構(gòu)的。當(dāng)前,這兩款芯片在嵌入式開發(fā)領(lǐng)域廣泛應(yīng)用。本章主要介紹S3C44B0和S3C2410的硬件資源和整體架構(gòu),對其存儲控制器、NANDFlash控制原理、時(shí)鐘電源管理、通用I/O接口和中斷控制器作了詳細(xì)介紹,并通過一定的實(shí)例來加深讀者對關(guān)鍵技術(shù)的理解。內(nèi)容提要9.1 處理器簡介9.2 S3C44B0/S3C2410存儲控制器9.3 S3C2410NANDFlash控制器9.4S3C44B0/S3C2410時(shí)鐘電源管理9.5S3C44B0/S3C2410通用I/O端口9.6S3C44B0/S3C2410中斷機(jī)制9.4S3C44B0/S3C2410時(shí)鐘電源管理S3C44B0的電源管理有五種模式:正常模式,低速模式,空閑模式,停止模式和LCD的SL空閑模式。S3C2410的電源管理模塊有四種活動(dòng)模式:正常模式,低速模式,休眠模式和斷電模式。9.4.1S3C44B0/S3C2410時(shí)鐘管理1.時(shí)鐘結(jié)構(gòu):S3C44B0的時(shí)鐘發(fā)生器模塊S3C2410的時(shí)鐘發(fā)生器模塊見教材《ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程》第241頁9-202.時(shí)鐘源的選擇:控制模式引腳(OM3和OM2)與S3C44B0/S3C2410時(shí)鐘源選擇的結(jié)合關(guān)系如表9-18所示。OM[3:2]狀態(tài)通過查閱OM3和OM2引腳在nRESET上升沿時(shí)的值內(nèi)部鎖存的。3.PLL(鎖相環(huán))內(nèi)置時(shí)鐘發(fā)生器的S3C44B0PLL/S3C2410MPLL是一個(gè)以頻率與相位輸入信號的基準(zhǔn)的同步輸出信號的電路。4.上電復(fù)位:晶振開始振蕩數(shù)毫秒后,當(dāng)S3C44B0OSC(S3C2410:XTlpll)時(shí)鐘穩(wěn)定后nRESET得到釋放,PLL開始根據(jù)默認(rèn)的PLL配置進(jìn)行運(yùn)作。PLL在上電復(fù)位后變得不穩(wěn)定,所以Fin代替Fpllo(S3C2410:Mpll)在S/W(S3C2410:軟件)更新PLLCON的配置前直接反饋到Fout。用戶在復(fù)位后想使用PLLCON寄存器的默認(rèn)值,也需要通過S/W(S3C2410:軟件)寫入相同的值給PLLCON寄存器。上電復(fù)位時(shí)鐘鎖定在正常模式下的操作,如果用戶希望通過寫PMS值的方法改變頻率,PLL鎖定時(shí)間會自動(dòng)寫入。在鎖定時(shí)間里,時(shí)鐘不支持內(nèi)部模塊。9.4.2S3C44B0/S3C2410電源管理S3C44B0/S3C2410電源管理模塊通過控制系統(tǒng)時(shí)鐘,實(shí)現(xiàn)減少系統(tǒng)的電源功耗。S3C44B0的方法與PLL,時(shí)鐘控制邏輯,外設(shè)時(shí)鐘控制以及喚醒信號相關(guān)。S3C44B0電源管理狀態(tài)機(jī)S3C2410電源管理狀態(tài)機(jī)9.4.3S3C44B0/S3C2410時(shí)鐘與電源管理專用寄存器鎖時(shí)計(jì)數(shù)寄存器LOCKTIME、PLL配置寄存器、時(shí)鐘控制寄存器(CLKCON)、低速時(shí)鐘控制寄存器(CLKSLOW)詳細(xì)描述信息見教材《ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程》第246-250頁9.5S3C44B0/S3C2410通用I/O端口S3C44B0有71個(gè)多功能輸入/輸出引腳。有如下7個(gè)端口:兩個(gè)9位輸入/輸出端口(端口E和F)兩個(gè)8位輸入/輸出端口(端口D和G)一個(gè)16位輸入/輸出端口(端口C)一個(gè)10位輸出端口(端口A)一個(gè)11位輸入/輸出端口(端口B)S3C2410有117個(gè)多功能輸入/輸出引腳。有如下8個(gè)端口:端口A(GPA):23位輸出端口端口B(GPB):11位輸入/輸出端口端口C(GPC):16位輸入/輸出端口端口D(GPD):16位輸入/輸出端口端口E(GPE):16位輸入/輸出端口端口F(GPF):8位輸入/輸出端口端口G(GPG):16位輸入/輸出端口端口H(GPH):11位輸入/輸出端口9.5.1端口控制描述1.端口配置(控制)寄存器在S3C44B0和S3C2410中,大多數(shù)引腳是復(fù)合式的。所以,需要決定每個(gè)引腳所選擇的功能。端口控制寄存器決定每個(gè)引腳的功能。在S3C44B0中,如果PG0-PG7用于在掉電模式下的喚醒信號,這些端口需要配置成中斷模式。在S3C2410中,如果GPF0-GPF7和GPG0-GPG7用于斷電模式下的喚醒信號,這些端口必須配置成中斷模式。9.5.1端口控制描述2.端口數(shù)據(jù)寄存器如果這些端口被配置成輸出端口,數(shù)據(jù)可以從相應(yīng)的位被寫入。如果端口被配置成輸入端口,數(shù)據(jù)可以從相應(yīng)的位讀出。3.端口上拉寄存器端口上拉寄存器控制每個(gè)端口組的上拉電阻使能/禁止。當(dāng)相應(yīng)的位置0,引腳的上拉電阻被使能。為1時(shí),上拉電阻被禁止。9.5.1端口控制描述4.外部中斷控制寄存器S3C44B0的8個(gè)外部中斷與S3C2410的24個(gè)外部中斷通過多種信號方法被請求。EXTINT寄存器可以設(shè)置外部中斷觸發(fā)的方式,如低電平觸發(fā)、高電平觸發(fā)、下降沿觸發(fā)、上升沿觸發(fā)和雙沿觸發(fā)。9.5.2端口控制寄存器2.S3C2410端口寄存器9.5.2端口控制寄存器2.S3C2410端口寄存器9.5.2端口控制寄存器2.S3C2410端口寄存器9.5.2端口控制寄存器3~8:端口C~H與端口B寄存器類似,詳細(xì)信息見教材《ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程》第九章的9.5.2節(jié)的說明9.雜項(xiàng)控制寄存器MISCCR:USB相關(guān)設(shè)置10.DCLK控制寄存器:定義DCLKn信號9.5.2端口控制寄存器11.外部中斷控制寄存器:設(shè)置中斷觸發(fā)方式Torecognizethelevelinterrupt,thevalidlogiclevelonEXTINTnpinmustberetainedatleastfor40nsbecauseofthenoisefilter(ENTINT[15:0]).9.5.2端口控制寄存器11.外部中斷控制寄存器……

……9.5.2端口控制寄存器12.外部中斷濾波寄存器:控制EINT[23:16]濾波長度9.5.2端口控制寄存器13.外部中斷屏蔽寄存器EINTMASK:是否允許外部中斷EINT[23:4],0—允許、1—屏蔽14.外部中斷等待寄存器EINTPEND:0—無請求、1—請求可以通過對寄存器相應(yīng)位寫入1來清除特定位。通用狀態(tài)寄存器GSTATUS0~GSTATUS49.5.3通用I/O接口設(shè)計(jì)實(shí)例LED與蜂鳴器接口電路S3C44B0的端口A的第0、1、2、3管腳分別與LED相連,端口E的第0管腳用來控制蜂鳴器。如圖9-26所示9.5.3通用I/O接口設(shè)計(jì)實(shí)例控制編程要求:根據(jù)LED的硬件電路圖,編程實(shí)現(xiàn)LED的循環(huán)閃爍:{LED1亮延時(shí),LED4滅}->{LED2亮延時(shí),LED1滅}->{LED3亮延時(shí),LED2滅}->{LED4亮延時(shí),LED3滅}->{蜂鳴器開延時(shí),蜂鳴器關(guān)},如此無限循環(huán),實(shí)現(xiàn)LED霓虹燈式的循環(huán)閃爍。9.5.3通用I/O接口設(shè)計(jì)實(shí)例端口配置:#definerPCONA(*(volatileunsigned*)0x1d20000)#definerPDATA(*(volatileunsigned*)0x1d20004)#definerPCONE(*(volatileunsigned*)0x1d20028)#definerPDATE(*(volatileunsigned*)0x1d2002c)rPCONA=rPCONA&0xFFFFFFF0;rPCONE=rPCONE&0xFFFFFFFD;rPCONE=rPCONE|0x01;9.5.3通用I/O接口設(shè)計(jì)實(shí)例延時(shí)函數(shù):voidDelay(inttime){ unsignedinti; for(i=0;i<time;i++);}LED1控制函數(shù):voidLED1_Delay(charx){ if(x==1)

rPDATA=rPDATA&0xFFFFFFFE; elseif(x==0)

rPDATA=rPDATA|0x01; Delay(500);}9.5.3通用I/O接口設(shè)計(jì)實(shí)例主函數(shù):voidMain(){ while(1) { LED1_Delay(1); LED4_Delay(0); LED2_Delay(1); LED1_Delay(0);

…… Beep_Delay(1); Beep_Delay(0); }}9.6S3C44B0/S3C2410中斷機(jī)制中斷是CPU在程序運(yùn)行過程中,被內(nèi)部或外部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完畢后,又返回原來的斷點(diǎn),繼續(xù)執(zhí)行原來的程序。對于微控制器來說,中斷源可能有很多,這就需要一個(gè)中斷源的管理者,這個(gè)中斷管理者在微控制器里由“中斷控制器”來充當(dāng)。S3C44B0/S3C2410內(nèi)部集成了中斷控制器,能夠管理多個(gè)中斷源。9.6.1S3C44B0中斷控制器1.中斷源

S3C44B0中斷控制器可以管理30個(gè)中斷源,其中4個(gè)外部中斷4、5、6、7通過“或”邏輯門共用一根中斷請求線,2個(gè)UART錯(cuò)誤中斷通過“或”邏輯門共用一根中斷請求線。共計(jì)26個(gè)獨(dú)立的中斷源。9.6.1S3C44B0中斷控制器2.中斷優(yōu)先級產(chǎn)生模塊9.6.1S3C44B0中斷控制器優(yōu)先級約定在從優(yōu)先級產(chǎn)生單元中,sGA、sGB、sGC、sGD的優(yōu)先級總是高于sGKA和sGKB,sGN的優(yōu)先級可以通過編程來配置。sGKN中,sGKA的優(yōu)先級高于sGKB。在主優(yōu)先級產(chǎn)生單元中,mGA、mGB、mGC、mGD的優(yōu)先級總是高于mGKA和mGKB,所以mGKA和mGKB的優(yōu)先級是最低的。mGKN的優(yōu)先級可以通過編程來配置。S3C44B0的IRQ中斷分為向量中斷和非向量中斷(通過設(shè)置中斷控制寄存器INTCON來配置)。中斷發(fā)生時(shí),對于兩類中斷程序執(zhí)行情況不同:非向量中斷方式中斷源產(chǎn)生中斷后,從0x18處取指、譯碼、執(zhí)行。0x18中斷服務(wù)入口3.S3C44B0向量中斷與非向量中斷9.6.1S3C44B0中斷控制器向量中斷方式中斷源產(chǎn)生中斷后,跳轉(zhuǎn)到0x18處,并忽略0x18處指令,中斷控制器自動(dòng)產(chǎn)生分支指令并加載到總線上,這些分支指令使程序計(jì)數(shù)器能夠?qū)?yīng)到每一個(gè)中斷源的向量地址。在各個(gè)中斷源對應(yīng)的中斷向量地址中,存放著跳轉(zhuǎn)到相應(yīng)中斷服務(wù)程序的指令代碼。0x18中斷服務(wù)入口3.S3C44B0向量中斷與非向量中斷9.6.1S3C44B0中斷控制器中斷啟動(dòng)---中斷響應(yīng)IRQs

中斷非向量中斷INTCONV=1向量中斷INTCONV=0中斷服務(wù)入口地址表地址映射中斷控制器讀取I_ISPR寄存器計(jì)算偏移(R8)26個(gè)中斷源EINT0/1/2……PowerDownEINT0/1/2……PowerDown9.6.1S3C44B0中斷控制器9.6.2S3C2410中斷控制器S3C2410提供56個(gè)中斷源,單獨(dú)的信號線有32個(gè)。如表9-50所示。當(dāng)中斷源提出中斷服務(wù)請求后,中斷控制器經(jīng)過仲裁之后再請求ARM920T核的FIQ或IRQ中斷。仲裁過程依賴于硬件優(yōu)先級邏輯,同時(shí)仲裁結(jié)果被寫入到中斷掛起寄存器中,用戶可在中斷服務(wù)程序中讀取該寄存器,從而識別出是哪一個(gè)中斷源產(chǎn)生中斷。S3C2410中斷優(yōu)先級仲裁模塊9.6.2S3C2410中斷控制器ARBITER0~ARBITER5構(gòu)成第一級仲裁邏輯,ARBITER6構(gòu)成第二級仲裁邏輯。每個(gè)仲裁組用1位仲裁模式控制信號(ABR_MODE)和兩位選擇控制信號(ABR_SEL)確定中斷優(yōu)先級:(1)若ABR_SEL=00,則中斷優(yōu)先級為REQ0、REQ1、REQ2、REQ3、REQ4、REQ5(2)若ABR_SEL=01,則中斷優(yōu)先級為 REQ0、REQ2、REQ3、REQ4、REQ1、REQ5(3)若ABR_SEL=10,則中斷優(yōu)先級為REQ0、REQ3、REQ4、REQ1、REQ2、REQ5(4)若ABR_SEL=11,則中斷優(yōu)先級為 REQ0、REQ4、REQ1、REQ2、REQ3、REQ59.6.2S3C2410中斷控制器仲裁模式控制信號(ABR_MODE)

(1)當(dāng)ABR_MODE設(shè)置為0時(shí),ABR_SEL的值不會自動(dòng)改變,仲裁組工作在固定工作模式下。(2)當(dāng)ABR_MODE設(shè)置為1時(shí),則ABR_SEL位值按循環(huán)方式自動(dòng)改變9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器使用S3C44B0/S3C2410中斷控制時(shí),不僅要對I/O引腳和相應(yīng)的功能部件進(jìn)行設(shè)置,還要對中斷控制器的相關(guān)寄存器進(jìn)行初始化,相關(guān)的寄存器主要有中斷控制寄存器、中斷源掛起寄存器、中斷模式寄存器、中斷屏蔽寄存器、中斷優(yōu)先級寄存器、中斷掛起寄存器。2410中與外部中斷(EINT)相關(guān)的寄存器還有: 端口控制寄存器(GPFCON、GPGCON),外部中斷控制寄存器(EXTINT0~EXTINT2,控制中斷觸發(fā)方式和是否進(jìn)行濾波),外部中斷濾波寄存器(EINTFLT2、EINTFLT3),外部中斷屏蔽(EINTMASK),外部中斷等待寄存器(EINTPEND)。1.S3C44B0的中斷控制寄存器INTCON9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器2.中斷掛起寄存器INTPND中斷掛起寄存器INTPND如表9-52所示,每一個(gè)中斷源對應(yīng)著一位。只有未被屏蔽且具有最高優(yōu)先級、在源掛起寄存器中等待處理的中斷請求,其對應(yīng)的中斷掛起位被置1(某時(shí)刻只有一位能夠置為1)。S3C44B0在中斷服務(wù)程序中必須加入對I_ISPC和F_ISPC寫1的操作來清除掛起條件,準(zhǔn)備接收下一次中斷。S3C2410在中斷服務(wù)程序中應(yīng)該在清除SRCPND后對INTPND進(jìn)行清除操作9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器3.中斷模式寄存器INTMODARM處理器的中斷模式有兩種:IRQ模式和FIQ模式。中斷模式寄存器INTMOD如表9-53所示,每一個(gè)中斷源對應(yīng)著一位。當(dāng)中斷源的模式位設(shè)置為0時(shí),中斷會按IRQ模式來處理;當(dāng)模式位設(shè)置為1時(shí),對應(yīng)的中斷會按FIQ模式來處理。某一時(shí)刻只能有一個(gè)中斷源在FIQ模式處理,即INTMOD寄存器只有一位可以設(shè)置為1。在FIQ模式下,INTPND寄存器和INTOFFSET寄存器不受任何影響。9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器4.中斷屏蔽寄存器INTMSK在中斷屏蔽寄存器INTMSK中,除了全局屏蔽位外,每一個(gè)中斷源對應(yīng)著一位,確定對應(yīng)的中斷源是否被屏蔽。如教材表9-54所示。如果某位設(shè)置為1,則該位所對應(yīng)的中斷請求不會被處理;如果某位設(shè)置為0,則該位所對應(yīng)的中斷請求才會被處理。如果全局屏蔽位被設(shè)置為1,則所有的中斷請求都不會被處理理。

9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器5.S3C44B0向量模式相關(guān)寄存器對S3C44B0中的優(yōu)先級產(chǎn)生模塊的設(shè)置通過對寄存器I_PSLV、I_PMST、I_CSLV、I_CMST的設(shè)置來完成。如果幾個(gè)中斷源同時(shí)發(fā)出中斷請求,則可通過讀I_IPSR寄存器可獲知前具有最高優(yōu)先級的中斷源。9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器寄存器讀/寫描述I_PSLVR/W確定從單元的IRQ優(yōu)先級I_PMSTR/W確定主單元的IRQ優(yōu)先級I_CSLVR當(dāng)前從單元的IRQ優(yōu)先級I_CMSTR當(dāng)前主單元的IRQ優(yōu)先級I_ISPRR中斷服務(wù)掛起寄存器5.S3C44B0向量模式相關(guān)寄存器I_PSLV9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器I_PSLV位描述PSLAVE@mGA[31:24]確定mGA中的Sga、B、C、D的優(yōu)先級PSLAVE@mGB[23:16]確定mGB中的Sga、B、C、D的優(yōu)先級PSLAVE@mGC[15:8]確定mGC中的Sga、B、C、D的優(yōu)先級PSLAVE@mGD[7:0]確定mGD中的Sga、B、C、D的優(yōu)先級PSLAVE@mGA位描述sGA[31:30]00:1st,01:2nd,10:3rd,11:4thsGB[29:28]00:1st,01:2nd,10:3rd,11:4thsGC[27:26]00:1st,01:2nd,10:3rd,11:4thsGD[25:24]00:1st,01:2nd,10:3rd,11:4th5.S3C44B0向量模式相關(guān)寄存器I_PMST9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器I_PMST位描述M[12]主操作模式:0=輪詢1=固定FxSLV[A:D][11:8]從操作模式:0=輪詢1=固定PMASTER[7:0]確定4個(gè)從單元的優(yōu)先級PMASTER位描述mGA[7:6]00:1st,01:2nd,10:3rd,11:4thmGB[5:4]00:1st,01:2nd,10:3rd,11:4thmGC[3:2]00:1st,01:2nd,10:3rd,11:4thmGD[1:0]00:1st,01:2nd,10:3rd,11:4th5.S3C44B0向量模式相關(guān)寄存器I_CSLV寄存器:當(dāng)前從寄存器的IRQ優(yōu)先級I_CMST寄存器:當(dāng)前主寄存器的IRQ優(yōu)先級I_ISPR寄存器:當(dāng)前正在被服務(wù)的中斷源(注意與INTPND的區(qū)別)IRQ/FIQ中斷掛清零寄存器I_ISPC、F_ISPC設(shè)置位值為1,則清除中斷掛起寄存器中的對應(yīng)位.9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器寄存器讀/寫描述I_ISPCWIRQ中斷掛起清零寄存器F_ISPCWFRQ中斷掛起清零寄存器6.S3C2410中斷偏移寄存器INTOFFSETS3C2410中斷偏移寄存器INTOFFSET的值代表了中斷源號,即在IRQ模式下,INTPND寄存器中某位置1,則INTOFFSET寄存器中的值是其對應(yīng)中斷源的偏移量。該寄存器是只讀的,可以通過清除SRCPND寄存器和INTPND寄存器的掛起位來自動(dòng)清除。9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器7.S3C2410源掛起寄存器SRCPND、SUBSRCPNDS3C2410源掛起寄存器SRCPND由32位組成,每一個(gè)中斷請求信號對應(yīng)著其中的一位。中斷源請求中斷服務(wù)時(shí),其所對應(yīng)的位就被置1。SRCPND記錄了哪些中斷源發(fā)出了中斷請求。子源掛起寄存器SUBSRCPND用于共用中斷請求信號的中斷控制。SRCPND、SUBSRCPND各位信息見教材第294頁表9-58、表9-59。9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器8.S3C2410中斷優(yōu)先級寄存器PRIORITYS3C2410中斷優(yōu)先級寄存器PRIORITY只在IRQ模式下起作用,中斷源的優(yōu)先級由2位的ARB_SEL和1位的ARB_MODE的不同設(shè)定值來決定。9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器S3C2410中斷處理過程相關(guān)寄存器9.6.3S3C44B0/S3C2410中斷控制特殊功能寄存器9.6.3S3C44B0/S3C2410中斷控制器設(shè)計(jì)實(shí)例中斷接口設(shè)計(jì)#include "44blib.h"#include "44b.h"#include "def.h"voidKeyINT_isr(void);#defineROWNUM3#defineCOLOMNNUM3int

keyrow=0;int

keycolomn=0;int

colomndata=0;9.6.3S3C44B0/S3C2410中斷控制器設(shè)計(jì)實(shí)例voidKeyInit(void){ //初始化IO端口

//#definerPCONC(*((volatileunsigned*)0x1d20010))

rPCONC&=~(0xFFF);

rPCONC|=((0<<10)|(0<<8)|(0<<6)//PC5-3為輸入

|(1<<4)|(1<<2)|(1<<0));//PC2-0為輸出

rPUPC|=0x3F;//PC5-0禁止上拉電阻

rPDATC|=0x7;//初始狀態(tài)PC2-0置高電平

//初始化中斷

rI_ISPC=0x3FFFFFF; //清除中斷掛起寄存器INTPND9.6.3S3C44B0/S3C2410中斷控制器設(shè)計(jì)實(shí)例

rEXTINTPND=0xF; //清除外中斷請求寄存器P259

rINTMOD=0x0; //設(shè)置成IRQ模式

rINTCON=0x5; //非向量模式,IRQ允許、FIQ禁止

//#defineBIT_EINT4567 (0x1<<21)

//#defineBIT_GLOBAL (0x1<<26)

rINTMSK=~(BIT_GLOBAL|BIT_EINT4567); pISR_EINT4567=(int)KeyINT_isr;//設(shè)置中斷服務(wù)函數(shù)}9.6.3S3C44B0/S3C2410中斷控制器設(shè)計(jì)實(shí)例voidKeyScan(void){ inti; while(1) { colomndata=0; rPDATC&=~(1<<keyrow);//向當(dāng)前掃描行送低電平 rPDATC|=0x7; if(colomndata!=0)//當(dāng)檢測到發(fā)生中斷 {

for(i=0;i<COLOMNNUM;i++)//尋找按鍵所在列 {

if(colomndata&(1<<i)==0) {

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論