<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 系統時(shí)鐘和定時(shí)器;MPLL和定時(shí)器

系統時(shí)鐘和定時(shí)器;MPLL和定時(shí)器

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò ) 收藏
寫(xiě)在前面:覺(jué)得這章比較簡(jiǎn)單,沒(méi)有花較大篇幅來(lái)講,很多寄存器的相關(guān)用法可以參照S 3C2440的官方手冊,很容易看懂
1系統時(shí)鐘
(1) FCLK:用于CPU核
HCLK:用于A(yíng)HB總線(xiàn)上設備:CPU核、存儲器控制器、中斷控制器、LCD控制器、DMA和USB主機模塊
PCLK:用于A(yíng)PB總線(xiàn)上設備:WATCHDOG、IIS、I2C、PWM定時(shí)器、MMC接口、ADC、UART、GPIO、RTC和SPI
(2 )開(kāi)發(fā)板時(shí)鐘頻率為12 MHZ,通過(guò)PLL提高系統時(shí)鐘:MPLL和UPLL(S3C2440);UPLL用于USB設備,MPLL用于FCLK、HCLK、PLCK
(3 )上電→FCLK=Fin(外部輸入時(shí)鐘)→設置MPLL(Lock Time:長(cháng)短由寄存器LOCKTIME設定)→新的時(shí)鐘輸出正常
(4)幾個(gè)重要寄存器
MPLLCON寄存器用于設置FCLK與Fin的倍數
CLKDIVN寄存器用于設置FCLK、HCLK、PCLK三者的比例
2 PWM定時(shí)器
(1)5個(gè)16位的定時(shí)器,其中定時(shí)器0、1、2、3有PWM功能,即它們都有一個(gè)輸出引腳,可以通過(guò)定時(shí)器來(lái)控制引腳周期性的高、低電平變化;定時(shí)器4沒(méi)有輸出引腳
(2)PLCK→2個(gè)8位預分頻器(定時(shí)器0、1共用第一個(gè)定時(shí)器2、3、4共用第二個(gè);輸出2分頻,4分頻,8分頻,16分頻或者外部時(shí)鐘TCLK0/TCLK1)
TCFG0:經(jīng)過(guò)分頻器出來(lái)的時(shí)鐘頻率:PLCK/(TCFG0[7:0]或TCFG0[15:8]+1)
TCFG1設定相應定時(shí)器為經(jīng)過(guò)分頻器出來(lái)的時(shí)鐘頻率的幾分頻
定時(shí)器工作頻率= PLCK/(TCFG0[7:0]或TCFG0[15:8]+1)/幾分頻
(3)TCMPn=TCMPBn,TCNTn=TCNTBn→while(TCNTn==TCMPn) ~TOUTn →while(TCNTn==0) ~TOUTn,并觸發(fā)中斷(若中斷使能的話(huà)),且如果在TCON寄存器中將定時(shí)器設為“自動(dòng)加載”,則TCMPn=TCMPBn,TCNTn=TCNTBn
輸出管腳TOUTn默認為高電平,可以通過(guò)TCON改變,可能通過(guò)讀取TCNTOn寄存器得知TCNTn的值
(4)TCON寄存器:使用參考S3C2440手冊
在第一次使用定時(shí)器時(shí),要設置“手動(dòng)更新”位為1以使TCNTBn/TCMPBn的值裝入內部寄存器TCNTn、TCMPn中,下一次如果還要設置這一位,需要先將其清0
3 WATCHDOG定時(shí)器
(1)PLCK→2個(gè)8位預分頻器(輸出16分頻,32分頻,64分頻,128分頻或者外部時(shí)鐘TCLK0/TCLK1)
初始計數值寫(xiě)入 WTCNT→while(WTCNT==0)自動(dòng)重新裝載WTCNT=WTDAT,并可以產(chǎn)生中斷信號,可以輸出復位信號
(2)WATDOG定時(shí)器工作頻率=PCLK/(WTCON[15:8]+1)/幾分頻
大部分功能都在WTCON中設定
(3)在啟動(dòng)WATDOG定時(shí)器前,必須往這個(gè)寄存器定入初始計數值
4:MPLL和定時(shí)器操作實(shí)驗:完整代碼:timer.tar.gz timernoMPLL.tar.gz(使用系統默認的時(shí)鐘)
(1) 設置/啟動(dòng)MPLL
#define S3C2410_MPLL_200MHZ ((0x5c<<12)|(0x04<<4)|(0x00))
#define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<4)|(0x02))

void clock_init(void)
{
// LOCKTIME = 0x00ffffff; // 使用默認值即可
CLKDIVN = 0x03; // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1


__asm__(
"mrc p15, 0, r1, c1, c0, 0"
"orr r1, r1, #0xc0000000"
"mcr p15, 0, r1, c1, c0, 0"
);


if ((GSTATUS1 == 0x32410000) || (GSTATUS1 == 0x32410002))
{
MPLLCON = S3C2410_MPLL_200MHZ;
}
else
{
MPLLCON = S3C2440_MPLL_200MHZ;
}
}
(2) 設置存儲控制器
void memsetup(void)
{
volatile unsigned long *p = (volatile unsigned long *)MEM_CTL_BASE;



p[0] = 0x22011110; //BWSCON
p[1] = 0x00000700; //BANKCON0
p[2] = 0x00000700; //BANKCON1
p[3] = 0x00000700; //BANKCON2
p[4] = 0x00000700; //BANKCON3
p[5] = 0x00000700; //BANKCON4
p[6] = 0x00000700; //BANKCON5
p[7] = 0x00018005; //BANKCON6
p[8] = 0x00018005; //BANKCON7


p[9] = 0x008C04F4;

void timer0_init(void)
{
TCFG0 = 99; // 預分頻器0 = 99
TCFG1 = 0x03; // 選擇16分頻
TCNTB0 = 31250; // 0.5秒鐘觸發(fā)一次中斷
TCON |= (1<<1); // 手動(dòng)更新
TCON = 0x09; // 自動(dòng)加載,清“手動(dòng)更新”位,啟動(dòng)定時(shí)器0
}

(4)定時(shí)器中斷使能

void init_irq(void)
{
// 定時(shí)器0中斷使能
INTMSK &= (~(1<<10));

}



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>