看板 [ ASM ]
討論串[問題] 89S51 使用 C51 計時問題
共 3 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓3(3推 0噓 1→)留言4則,0人參與, 最新作者a45601236qq (Ming)時間10年前 (2014/06/07 17:18), 編輯資訊
2
0
1
內容預覽:
C_CPP 板問 51 相關問題的人好像比較少,所以就來這邊借問了.... 今天試著做一下模擬 ms 計算的(高階語言 sleep 都喜歡以 1ms * n 為單位). 試著計時 60 秒後,發現每分鐘都會誤差五秒鐘(感覺有點大). 想請大家幫忙看一下是否有問題.... 感謝<_ _). #incl
(還有616個字)

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者WolfLord (呆呆小狼)時間10年前 (2014/06/07 22:41), 10年前編輯資訊
0
0
1
內容預覽:
你沒說明你的環境, 假設這邊是使用12MHZ時鐘,一個M週期是1uS這段有點問題:你的中斷發生到跳進ISR需要兩個M週期,ISRVECT的JMP指令也要兩個M。然後你沒使用BANK(using X)所以會PUSH A,F R0~R7. 10組資料每一個PUSH都要兩個M 然後設定TH TL 要2*2
(還有1492個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者deo2000 (800IM)時間10年前 (2014/06/08 05:55), 10年前編輯資訊
0
0
1
內容預覽:
60秒誤差一秒都嫌太大. 時脈沒寫, 那我就假設最一般的case, 輸入給timer的週期 = 1us. 這裡看起來是因為要以 ms 為單位, 需要計數超過 256 所以用 mode1,. 但是中斷要去 reload 就影響計時準確度,. 我的作法是改用 mode2, 數到 200個pulse*1u
(還有271個字)
首頁
上一頁
1
下一頁
尾頁