arm9定時器課程設計
㈠ arm定時器問題
沒錯啊
㈡ ARM9中斷定時器程序下載到nand中,發生中斷時,跳到0x18處,跳到s3c2440內部SRAM出還是nand處執行
啟動後,nand是映射到ram中,然後開始運行,所以我覺得是在內部的ram中運行
㈢ 求arm7定時器精確延時程序
我想的方法是到9us附近用循環+ndelay檢查jiffies,不知道這樣做好不好。如果要求非常嚴格,最好是測機器周期然後用忙等待實現
㈣ 在arm9+linux線程中怎樣實現毫秒/微秒級的延時/定時
3層遞歸的空循環。計算全部指令周期,一次循環就是固定的延時。
㈤ arm嵌入式怎樣用定時器設置延遲函數
這是用systick中斷的例子
systick初始為1ms(默認值就是1ms)
定義一變數
u16
DelayR;
在主程式里設定要延遲的時間,
並使能SysTick中斷
DelayR
=
50ms
//
延遲50ms
然後在中systick中斷涵數里,
加入
if
(DelayR)
{
if
(
㈥ 利用CPU的定時器定時,設計一個電子時鍾
估計沒有人會給你的。原因如下:
1. 最重要的,就是沒有懸賞分。不管多少,沒專有誠意。
2. CPU沒有講清楚屬是什麼CPU,51?ARM? POWERPC?
3. LZ太懶。如果是關於細節問題,估計可以給你解答。你這太籠統,就給一題,想吃現成的。如果想弄個現成的,網路上多的是。在這邊別人就算給你的答案,估計也是復制粘貼過來的。
㈦ 我的課程設計是利用arm做一個計時器,我在網上找到的都是利用8051單片機做的計時器 ,arm和單片機一樣么
ARM是32位單片機,包括好多種,其中STM32應用較多,它的功能比8051強大很多,因此內部結構和操作都要復雜得多,沒有經過專門學習是不能編程的,也看不懂別人編的程序
㈧ arm9 +linux的實時時鍾
嘿嘿,你的開發文檔能給我一份嗎?
[email protected]
㈨ arm7 中斷和定時器使用的詳細講解!!!
arm7 是內抄核名稱,說明可以到www.arm.com上找到,中斷控制器、定時器不同廠家生產的cpu會有差異,應該根據不同的cpu的具體型號,到相應的官方網站下載 datasheet
㈩ 有熟悉ARM9 s3c2440A 的大蝦來我為指點下,是定時器的匯編,我是新手,求教!
特定的板子我不太了解,抽象的說一說吧,相信可以幫到你。一般而言定時器硬體的作用是為了避免忙等待loop類的delay(就是一個循環利用cpu執行指令需要時間來達到邏輯上的延時),使用同步運作的硬體(定時器硬體計時,超時後通過中斷通知cpu),輔以中斷來達到延時效果,這種延時是非同步的(必須將原本的邏輯以delay作為一個斷面,將斷面以後放到超時函數處理),如果像你代碼這種不存在操作系統,無多任務的情況下,其實配置了中斷並使用中斷處理的非同步方式,主程序還得忙循環等待(loop1: b loop1)
說下你的程序程序為何沒用。不是頻率問題,我們看下你的程序,進入loop循環前,滅燈,然後調用delay,接著進入循環,循環體中的代碼始終在開燈,這里存在兩個問題:
1、delay函數實際不管用。這點後續再說
2、循環中的代碼始終再開燈,而不是根據當前燈的狀態開燈或滅燈
說下delay
1、剛剛提到過,不用定時器,可以忙循環等待,for (i = K; i > 0; --i);,這個循環delay的時間大體上等於K乘以一個循環所使用的時間(算算幾條指令,乘以arm時鍾周期)
2、使用定時器的話,中斷方式,之前也提到了,你必須將loop函數分解,每次根據當前狀態執行一個開/滅燈動作,然後將這個函數掛接在超時中斷處理函數能運行到的流程上,主程序在配置完超時寄存器和中斷服務後,忙循環等待loop1: b loop1
3、使用定時器,但不用中斷方式,則邏輯上,delay函數包含兩個過程:a、配置定時器,開定時器(這是你目前delay函數所做的),b、循環讀取CNT寄存器,直到計數為0(也許定時器會自動復位,這時要留有餘地,比如判斷小於20類似的)。也即,你需要循環的判斷是不是已經「運行了需要的時間」了這一點。雖說這樣體現不出定時器的好處了,但從用法考慮,就是這么做的