[爆卦]微處理機 Timer是什麼?優點缺點精華區懶人包

為什麼這篇微處理機 Timer鄉民發文收入到精華區:因為在微處理機 Timer這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者drag (京都念慈庵,賈詡念費翔)看板C_and_CPP標題Re: [問題] 8051計時中斷...


※ 引述《//ideone.com/mOQRBj》之銘言:
: 不知道po在這裡是否對板 如果不對會自d 不好意思 大家
: 問題:
: 1.主程式的設定是因為要跑LED的關係嗎?
我不知道你說的是哪部分,
這個範例程式在main裡面是設定timer的動作,

TMOD是選定timer要跑的模式,
猜想可能TMOD=0x11是設定兩個timer都跑one time之類的
這部分請去研讀你所使用的MCU manual,關於register設定的部分

TCON |= 0x50;
應該是叫timer開始數
timer開始的時候會做一件事情
就是TL0會一直減少

要數多久算一秒取決你的crystal速度
以timer0來說,因為只有8bit(0xFF就爆了),所以必須用
TH0(高位) TL0(低位)來表達16bit(0xFF FF)
TH0^^ ^^TL0

: 2.interrupt 1 這個中斷程式 我看不太懂
: TH0=ValueTH0; TL0=ValueTL0 這部分
: 還有P1開始之後的程式( 算是全部不懂了 但TF0 TR0那些我知道為什麼)
: 3. interrupt 3 一樣的地方

Timer interrupt發生時
TF0=1 (觸發中斷,所以近來handler要清0)
TH0=0, TL0=0
(因為數完了所以才發生中斷,要重新設定值進去,出中斷後進行下一輪倒數)
TR0=0?這我到是忘了,應該要參考TMOD的是定再決定TR0的樣子

P0,P1,P2各是一群GPIO,一個P有8隻接腳
我猜P0.0接了一根LED
看起來是P0.0(P0的第一pin)每半秒(500ms)反向一次(LED明滅)

我再猜P1.0~P1.3接到4個7階顯示器的en線上?
每次interrupt1進去時就更新一個顯示器的數字(依序1.2.3.4這樣更新)
P2接的是7階顯示器的顯示線,並且並聯

至於要顯示什麼數字,
interrupt3才是你的數字計算本體

Seg7[]是你的顯示pattern
我猜Seg7[0] = 0x3F = 顯示數字'8'
_
8 = | | 等於要在P2.0~P2.6都要拉high=> P2 = 1111111b (0x3F)
-
| |
-

因為看不到你的電路設計所以我只能猜猜猜了~XD

如果真的再不熟可能要去請教程式的原作者比較好~

--
歪果人都很NICE的,這其中一定有什麼誤會

—╲)
▄▂ \ 為愛走天涯

® ▂▄from never1111 & Wii

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.230.221
※ 編輯: drag 來自: 59.124.230.221 (01/18 15:24)
EdisonX:太有心了,推一個 :) 01/18 15:26
uranusjr:超好人, 我當初修微處理機怎麼沒有這種教學XD 01/18 16:41
uranusjr:TR0 是控制 timer 0 要不要繼續跑(0 = 停止), 至於有沒 01/18 16:41
uranusjr:有用要看 TMOD 決定 (詳細要查書) 01/18 16:42
※ 編輯: drag 來自: 59.124.230.221 (01/21 13:16)
drag:很久沒碰,剛好手癢懂一點,有請各位大大指教了~^^ 01/21 13:17

你可能也想看看

搜尋相關網站