• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: timer0計數值不正確...
#8
資深會員
資深會員


查看用戶資訊
我用的是 18F1320,內建震盪器出廠精度 2%,4320 出廠精度是 1%,2.6.3 節有說明 OSCTUNE 這個 SFR暫存器的用法,5.9.2. 節有說明 OSCTUNE 位址在 0xF9B,F4320 的 PDF 手冊上都有,你的 PDF 可能太舊啦

發表於: 2004/10/8 11:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#7
資深會員
資深會員


查看用戶資訊
我有用INTIO1模式,量過OSC2/RA6的輸出頻率Fosc/4
還滿準的
不過我在規格書的2.6章找不到調整震盪器誤差的方法
請問一下18F4320的震盪器誤差要如何修正呢?

發表於: 2004/10/8 10:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#6
資深會員
資深會員


查看用戶資訊
內建震盪器的精度有多高? 1% 還是 2%?我忘了

內建震盪器誤差修正暫存器裡的數值是多少?你有檢查嗎?

可以把震盪器誤差修正到 0.25% ? ?,也可能搞爛到 10% ?? 忘了!

呵呵,小心喔

改用 CCP 中斷,就不用去算現場保護的延遲,不過,內建震盪器的精度問題還是要考慮的

Best wishes

發表於: 2004/10/8 10:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#5
資深會員
資深會員


查看用戶資訊
嗯嗯
這麼說的話
他是有真的10KHz產生一個中斷
只是產生後處理的事件太多
導致時間延遲?
那只好多試幾個數值讓他真正10KHz好了
可是我記得我以前玩8051時也是這麼寫卻沒延遲這麼多^^"

timer0的計數不是隨時計數嗎?
產生中斷後馬上載入數值去計數
而我接下來處理其他事情時他也應該沒停止計數啊

@.@
我沒保護這麼多啦
我只有保護W跟STATUS
也只4個指令
即使有延遲也不該差到20個指令週期
怎麼誤差這麼多 x_x

發表於: 2004/10/8 10:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#4
資深會員
資深會員


查看用戶資訊
參照:

jubel 寫道:
我用的是18f4320
系統內建4MHz震盪器
我設定timer0為8位元計數器
把數值156丟入TMR0L
使用中斷

如此一來
應該是每 4M/4/(256-100) = 10KHz 產生一次中斷
可是我用示波器去看
卻不是10KHz而是8.33KHz
我把中斷程式改到最短了
一進入中斷就
BTG LATD,3
清除中斷旗標
載入TMROL計數值
然後離開中斷
但還是一樣無法達到10KHz
請問這是什麼原因呢?


10 kHz 等於 100 個指令週期
8.33 kz 等於 120 個指令週期

這 20 個指令週期包含中斷的前處理,現場保護,context saving, 你有做 context saving 嗎?至少總有一個 GOTO 要兩個週期 ...還有,別忘了 BTG LATD,3 也要一個指令週期,載入TMROL也要一個週期 (還是兩個?),自己再仔細算算找找吧

20 個指令週期算是不錯的啦

看看下面這段 CCS 的中斷派遣程序,保護一大堆暫存器,大約要 40 個指令週期才能進入中斷服務程式,呵呵

0018: MOVWF 05 <-- 儲存 W
001A: MOVFF STATUS,06 <-- 儲存 STATUS
001E: MOVF FSR0L,W <-- 儲存 FSR
0020: MOVWF 07
0022: MOVF FSR0H,W
0024: MOVWF 08
0026: MOVF FSR1L,W
0028: MOVWF 09
002A: MOVF FSR1H,W
002C: MOVWF 0A
002E: MOVF FSR2L,W
0030: MOVWF 0B
0032: MOVF FSR2H,W
0034: MOVWF 0C
0036: MOVF PRODL,W
0038: MOVWF 14
003A: MOVF PRODH,W
003C: MOVWF 15
003E: MOVF BSR,W
0040: MOVWF 0D
0042: MOVLB 0
0044: MOVF @00,W
0046: MOVWF 0F
0048: MOVF @01,W
004A: MOVWF 10
004C: MOVF @02,W
004E: MOVWF 11
0050: MOVF @03,W
0052: MOVWF 12
0054: MOVF @04,W
0056: MOVWF 13
0058: BTFSS INTCON.5
005A: GOTO 0064
005E: BTFSC INTCON.2
0060: GOTO 1EDE <--- 到這裡才跳到中斷服務程式去

發表於: 2004/10/8 10:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#3
資深會員
資深會員


查看用戶資訊
是啊
不過我沒用除錯模式
直接用icd2把程式燒錄進18f4320後拔掉icd2連接線

發表於: 2004/10/8 9:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: timer0計數值不正確...
#2
資深會員
資深會員


查看用戶資訊
請問您的開發工具是ICD2嗎?

發表於: 2004/10/7 19:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


timer0計數值不正確...
#1
資深會員
資深會員


查看用戶資訊
我用的是18f4320
系統內建4MHz震盪器
我設定timer0為8位元計數器
把數值156丟入TMR0L
使用中斷

如此一來
應該是每 4M/4/(256-100) = 10KHz 產生一次中斷
可是我用示波器去看
卻不是10KHz而是8.33KHz
我把中斷程式改到最短了
一進入中斷就
BTG LATD,3
清除中斷旗標
載入TMROL計數值
然後離開中斷
但還是一樣無法達到10KHz
請問這是什麼原因呢?

發表於: 2004/10/7 18:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------