您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C語言中怎么設(shè)置時(shí)鐘”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
#define APLL_LOCK (*((volatile unsigned long *)0x7E00F000)) #define MPLL_LOCK (*((volatile unsigned long *)0x7E00F004)) #define EPLL_LOCK (*((volatile unsigned long *)0x7E00F008)) #define OTHERS (*((volatile unsigned long *)0x7e00f900)) #define CLK_DIV0 (*((volatile unsigned long *)0x7E00F020)) #define ARM_RATIO 0 /* ARMCLK = DOUTAPLL / (ARM_RATIO + 1) */ #define HCLKX2_RATIO 4 /* HCLKX2 = HCLKX2IN / (HCLKX2_RATIO + 1) = 100MHz */ #define HCLK_RATIO 0 /* HCLK = HCLKX2 / (HCLK_RATIO + 1) = 100MHz */ #define PCLK_RATIO 1 /* PCLK = HCLKX2 / (PCLK_RATIO + 1) = 50MHz */ #define MPLL_RATIO 0 /* DOUTMPLL = MOUTMPLL / (MPLL_RATIO + 1) */ #define APLL_CON (*((volatile unsigned long *)0x7E00F00C)) #define APLL_CON_VAL ((1<<31) | (250 << 16) | (3 << 8) | (1)) #define MPLL_CON (*((volatile unsigned long *)0x7E00F010)) #define MPLL_CON_VAL ((1<<31) | (250 << 16) | (3 << 8) | (1)) #define CLK_SRC (*((volatile unsigned long *)0x7E00F01C)) void clock_init(void) { /*將每一個(gè) LOCK_TIME 設(shè)置為 0xffff*/ APLL_LOCK = 0xffff; MPLL_LOCK = 0xffff; EPLL_LOCK = 0xffff; /* set async mode 當(dāng)CPU時(shí)鐘 != HCLK時(shí),要設(shè)為異步模式 */ OTHERS &= ~0xc0; //將 OTHERS 的第六和第七位清零,以設(shè)置成異步模式。 while ((OTHERS & 0xf00) != 0); /*CLK_DIV是為外設(shè)進(jìn)行分頻的寄存器,共三個(gè).CLK_DIV0、CLK_DIV1、CLK_DIV2。對(duì)于設(shè)置內(nèi)核時(shí)鐘和AHB、APB的總線時(shí)鐘來說,我們只需要了解CLK_DIV0的幾個(gè)位域即可。*/ CLK_DIV0 = (ARM_RATIO) | (MPLL_RATIO << 4) | (HCLK_RATIO << 8) | (HCLKX2_RATIO << 9) | (PCLK_RATIO << 12); APLL_CON = APLL_CON_VAL; /* 500MHz */ MPLL_CON = MPLL_CON_VAL; /* 500MHz */ CLK_SRC = 0x03;//打開時(shí)鐘源開關(guān),讓進(jìn)過LOCK_TIME后變得穩(wěn)定后的時(shí)鐘源輸出。 }
注意:OTHERS寄存器中的syncmode和syncmuxsel這兩個(gè)位應(yīng)該是協(xié)同工作的,一起置1或清0。syncmode要置1,就先向syncmuxsel位寫1;syncmode清0后,隨即再把syncmuxsel位也清0。
“C語言中怎么設(shè)置時(shí)鐘”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。