www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]實驗?zāi)康模和ㄟ^使用MPLL提高系統(tǒng)時鐘,啟動定時器產(chǎn)生中斷來點亮LED燈,啟動Watchdog定時器,如果程序跑飛,借助Watchdog重新運行程序,借此掌握S3C2410的時鐘管理、PWM及看門狗定時器。實驗環(huán)境及說明:恒頤S3C2410

實驗?zāi)康模和ㄟ^使用MPLL提高系統(tǒng)時鐘,啟動定時器產(chǎn)生中斷來點亮LED燈,啟動Watchdog定時器,如果程序跑飛,借助Watchdog重新運行程序,借此掌握S3C2410的時鐘管理、PWM及看門狗定時器。

實驗環(huán)境及說明:恒頤S3C2410開發(fā)板H2410。

實 驗思路:開發(fā)板上電啟動后,自動將NandFlash開始的4K數(shù)據(jù)復(fù)制到SRAM中,然后跳轉(zhuǎn)到0地址開始執(zhí)行。然后來設(shè)置MPLL來改變FCLK、 HCLK、PCLK的值,初始化存儲控制器來使用SDRAM。初始化LED燈管腳、定時中斷控制器和看門狗,使能定時中斷控制器和看門狗。之后進(jìn)入 main函數(shù)死循環(huán)等待中斷的發(fā)生,每隔設(shè)定的時間觸發(fā)定時中斷,調(diào)用定時中斷處理函數(shù)點亮/熄滅LED燈。若程序跑飛,觸發(fā)看門狗重啟。

知識掌握:系統(tǒng)時鐘、PWM定時器和Watchdog定時器
一、系統(tǒng)時鐘:S3C2410的時鐘控制邏輯為整個芯片提供了三種時鐘。
★FCLK 用于CPU核;HCLK用于AHB總線上設(shè)備---CPU核、存儲器控制器、中斷控制器、LCD控制器、DMA和USB主機模塊;PCLK用于APB總線 上設(shè)備---Watchdog、IIS、I2C、PWM定時器、MMC接口、ADC、UART、GPIO、RTC和SPI。
★AHB(Advanced High performance Bus)---主要用于高性能模塊間的連接;APB(Advanced Peripheral Bus)---主要用于低帶寬的周邊外設(shè)之間的連接。
★ 開發(fā)板時鐘頻率為12MHz,主要是為了降低電磁干擾和板間布線要求,需要通過PLL提高系統(tǒng)時鐘。S3C2410包括MPLL(用于FCLK、 HCLK、PLCK)和UPLL(用于USB設(shè)備),他們的設(shè)置方法類似。開發(fā)板上電→FCLK=Fin(外部輸入時鐘)→設(shè)置MPLL相關(guān)寄存器→等待 (Lock Time:長短由寄存器LOCKTIME設(shè)定)→MPLL輸出穩(wěn)定,CPU工作在新的時鐘FCLK下。

★設(shè)置MPLL需要設(shè)置下面幾個重要寄存器:
●LOCKTIME寄存器(LOCK TIME COUNT)用于設(shè)置lock time的長度,初始值0x00FFFFFF。
●MPLLCON(Main PLL Control)寄存器用于設(shè)置FCLK與Fin的倍數(shù),初始值0x0005C080。
●CLKDIVN(CLOCK DIVIDER CONTROL)寄存器用于設(shè)置FCLK、HCLK、PCLK三者的比例。
二、PWM(pulse width modulation)定時器
★S3C2410共有5個16位的定時器,其中定時器0、1、2、3有PWM功能,因為它們都有一個輸出引腳,可以通過定時器來控制引腳周期性的高、低電平變化;定時器4木有輸出引腳就不有PWM功能了。
★PLCK 是定時部件的時鐘源,先通過2個8位預(yù)分頻器(定時器0、1共用第一個定時器,2、3、4共用第二個),輸出進(jìn)入第二級分頻(輸出2/4/8/16分頻或 者外部時鐘TCLK0/TCLK1)。這兩次預(yù)分頻都是通過設(shè)置TCFG0寄存器完成的。每個定時器工作在哪種頻率下可以通過TCFG1寄存器來選擇的。
★定時器的使用主要涉及以下寄存器:
●TCFG0寄存器:位[7:0],位[15:8]分別用于控制預(yù)分頻器0,1;它們的值為0~255。經(jīng)過分頻器出來的時鐘頻率:PLCK/(TCFG0[7:0]+1或TCFG0[15:8]+1)。

'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" src="http://www.arm79.com/attachment/Mon_1005/94_67_154d167be4af4a1.jpg" onclick="if(this.width>=700) window.open('http://www.arm79.com/attachment/Mon_1005/94_67_154d167be4af4a1.jpg');" border="0" width="700">
●TCFG1寄存器:設(shè)定相應(yīng)定時器為經(jīng)過分頻器出來的時鐘頻率的幾分頻。定時器工作頻率= PLCK/(TCFG0[7:0]或TCFG0[15:8]+1)/幾分頻。

●TCNTBn/TCMPBn寄存器:這兩個寄存器都只用到位[15:0]。TCNTBn中保存定時器的初始計數(shù)值,TCMPBn中保存比較值。它們的在啟動定時器時,被傳到定時器內(nèi)部寄存器TCNTn,TCMPn中。
●TCNTOn寄存器:n為0~4,內(nèi)部寄存器TCNTn在其工作時鐘下不斷減1計數(shù),可以通過讀取TCNTOn寄存器得知其值。
●TCON寄存器:它的功能如下:第一次啟動定時器時,手動將TCNTBn/TCMPBn寄存器的值裝入內(nèi)部寄存器TCNTn,TCMPn中;啟動,停止定時器;決定在定時器計數(shù)到達(dá)0時是否自動裝入初值;決定定時器的管腳TOUTn的輸出電平是否反轉(zhuǎn)。

三、Watchdog定時器:其使用和PWM定時器很類此。
★PLCK 先經(jīng)過8位預(yù)分頻器后再被分成4種頻率(16/32/64/128分頻)。使用看門狗定時器的一個最主要目的當(dāng)然是讓它給你看門了。程序正常執(zhí)行時,必須 不斷重新設(shè)置WTCNT寄存器使其不為0,這樣可以保證系統(tǒng)不被重啟,稱為“喂狗”;程序崩潰時不能按時“喂狗”,則計數(shù)值到達(dá)0后系統(tǒng)重啟,使得程序可 以重新正常運行。
★Watchdog存在的意義:開啟Watchdog之后程序必須定時向其反饋信息,這看似麻煩又耗資源,其實是很重要的行為, 是程序向硬件傳遞自身運行狀態(tài)的一種方法。如果程序運行良好則它應(yīng)該可以在規(guī)定的時間間隔內(nèi)向Watchdog反饋信息,借此來說明程序運行正常;若程序 由于某個不當(dāng)?shù)牟僮鞫M(jìn)入死循環(huán)等,則無法向Watchdog反饋信息,Watchdog將發(fā)生記時超時,從而引起硬件重起。如果沒有Watchdog, 程序死掉就死掉了,只能等待用戶自己發(fā)現(xiàn)去吧。
★相關(guān)寄存器:
●WTCON寄存器:用于設(shè)置預(yù)分頻系數(shù),選擇工作頻率,決定是否使能中斷,是否啟用WATDOG功能等。

●WTDAT寄存器:用以決定Watchdog定時器的超時周期,值自動寫入WTCNT。
●WTCNT寄存器:在啟動WATDOG定時器前,必須往這個寄存器寫入初始計數(shù)值,啟動定時器后,它做減1操作,當(dāng)計數(shù)器值達(dá)到0時,如果中斷被使能的話,就發(fā)出中斷,如果Watchdog功能被使能的話就發(fā)出復(fù)位信號,裝載WTDAT寄存器的值并重新計數(shù)。

關(guān)鍵代碼解析:
★head.S頭文件來初始化,設(shè)置中斷模式、系統(tǒng)模式的棧,設(shè)置好中斷處理函數(shù)
.text
.global _start
_start:
@中斷向量表處理函數(shù),只給出復(fù)位和普通中斷模式的處理函數(shù),其它異常未使用
b Reset
......
@0x18: 中斷模式的向量地址
b HandleIRQ
@0x1c: 快中斷模式的向量地址
HandleFIQ:
b HandleFIQ

Reset: @復(fù)位處理
bl disable_watch_dog @關(guān)門喂狗
ldr sp,=0x4096@clock初始化棧地址
bl clock_init @設(shè)置MPLL,改變FCLK、HCLK、PCLK
bl mem_control_setup @設(shè)置存儲控制器以使用SDRAM
bl copy_steppingstone_to_sdram @復(fù)制代碼到SDRAM中
ldr pc, =on_sdram @跳到SDRAM中繼續(xù)執(zhí)行
on_sdram:
msr cpsr_c, #0xd2@進(jìn)入中斷模式
ldr sp, =0x32000000@設(shè)置中斷模式棧指針
msr cpsr_c, #0xdf@進(jìn)入系統(tǒng)模式
ldr sp, =0x34000000@設(shè)置系統(tǒng)模式棧指針
bl init_led @初始化LED
bl init_timer0 @初始化定時器0
bl enable_timer0@使能定時器0
bl init_watchdog@初始化Watchdog
bl enable_watchdog@使能Watchdog
msr cpsr_c, #0x5f@設(shè)置I-bit=0,開IRQ中斷
ldr lr, =halt_loop@設(shè)置返回地址
ldr pc, =main @調(diào)用main函數(shù)
halt_loop:
b halt_loop
★init.c文件實現(xiàn)時鐘、GPIO、中斷及定時的初始化,主要代碼:
/*
* 時鐘初始化
*/
#define S3C2410_MPLL_200MHZ ((0x5c<<12)|(0x04<<4)|(0x00))

void init_clock(void)
{
CLKDIVN= 0x03;// FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1

/* 如果HDIVN非0,CPU的總線模式應(yīng)該從"fast bus mode"變?yōu)?asynchronous bus mode"*/
__asm__(
"mrcp15, 0, r1, c1, c0, 0n"/* 讀出控制寄存器 */
"orrr1, r1, #0xc0000000n"/* 設(shè)置為"asynchronous bus mode" */
"mcrp15, 0, r1, c1, c0, 0n"/* 寫入控制寄存器 */
);
MPLLCON = S3C2410_MPLL_200MHZ;/* FCLK=200MHz,HCLK=100MHz,PCLK=50MHz */
}
/*
* 定時器0初始化
*/
void init_timer0(void)
{
TCFG0= 99;// 預(yù)分頻器0 = 99
TCFG1= 0x03;// 選擇16分頻
TCNTB0 = 31250; // 0.5秒鐘觸發(fā)一次中斷
TCON |= (1<<1); // 手動更新
TCON = 0x09;// 自動加載,清“手動更新”位,啟動定時器0
}
/*
* 定時器0中斷使能
*/
void enable_timer0(void)
{
INTMSK &= (~(1<<10));// 定時器0中斷使能
}
/*
* Watchdog初始化
*/
void init_watchdog(void)
{
//Prescaler Value = 99;Division_factor = 16(Clock Select=16);Interrupt Generation = 0(不產(chǎn)生中斷);Reset = 1(開啟Reset Signal)
WTCON = 0x6381;
//設(shè)置寄存器WTDAT的值為0x8000,時間一定要大于Timer0的時間
WTDAT = 0x8000;
}
/*
* Watchdog使能
*/
void enable_watchdog(void)
{
WTCON|=1<<5;
}
★interrupt.c文件實現(xiàn)中斷的處理,主要代碼:
/*
* 定時器0中斷處理函數(shù)
*/
void Timer0_Handle(void)
{
//喂狗
WTCNT=0x8000;
//每次中斷令4個LED改變狀態(tài)
if(INTOFFSET == 10)
GPFDAT = ~(GPFDAT & (0xf << 4));
//清中斷
SRCPND = 1 << INTOFFSET;
INTPND = INTPND;
}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉