Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
參照:
;================================================ 真羨慕有寫大程式的經驗 , 以後如有寫超過 2K 程式的時候一定向你請教
INCF HALFSEC , F ; ( or DECF )
發表於: 2009/12/2 18:32
Edited by Beee on 2009年12月02日 21:45:42
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
參照:
補一下
發表於: 2009/12/2 15:09
|
|||
少年不知愁滋味,老來方知路難行。
|
||||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
謝謝Beee的回覆
![]() 用了Beee所講的方式去測了一下 Timer1 的起振時間,測起來平均在 1 秒左右, 我在 Timer1 中斷副程式加入計時程式,從 power on 開始到時間正常顯示這段時間,為 1 分鐘多一點, 也就是說 power on 約 1 秒後 Timer1 外接32768Hz震盪器已經起振完成開始震盪了,而且在這之後的 1 分多鐘,也都正常震盪, 我照Ryang板主所說用 ICD2 去執行程式,發現 Timer1 中斷每次都有發生 ![]() ![]() 看了一下暫存器跟變數的內容,發現有一個變數每次停在中斷點時都會減一,不過值是從 255 一直減下來, 再重新檢查了程式,發現一個計算秒的變數沒初始化到 ![]() power on ,Timer1 起振後由於 halfSec 沒初始化到,所以一開始 halfSec=0 ,一進入到 Timer1 中斷, 執行到 decfsz halfSec 後,halfSec 的值就變為 255(0-1=255) ![]() Bug 的原因是 halfSec 沒有初始化到 ![]() 感覺有點對不起大家 ~~~><~~~ 不過由於這次大家提供的意見跟除錯方法還有很多寶貴的知識,讓我獲益良多對ICD2的除錯用法也更加了解,再次謝謝大家 ![]() ![]() ![]() 以下對2個已解決的狀況作個總結:
1. 程式寫超過程式記憶體 page0(0005h~07ffh) 無法動作的問題
以上跟大家分享一下,希望對大家會有所幫助 ![]() 再次謝謝大家的回答 ![]() ![]() ![]()
發表於: 2009/12/2 14:15
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
忘記補充 : 石英振盪是屬於物理振盪(壓電效應) , 要停下來好像沒那麼容易
繼上次實驗(十秒以上), 這次 : 停電 , 短路 , 復電 ( 全部三秒完成 ) 得到的數據 約在 2XXXX ( 16進位 ) 上下, 實驗雖不嚴謹 , 但得到的印象是 振盪並未完全停止 這次得到的經驗是 , 要確認 石英 停止振盪 , 最好是 短路後 再等 30 秒 ![]() 你說第一次 有執行 , 然後要再過 一分鐘 才再執行 ( 第一次 可能是 BUG , 非正常進入 ) 道理如上所述 : 諧振後 , 要停下來不容易
發表於: 2009/12/2 0:37
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
謝謝Ryang板主及Beee的回覆
![]() 突然想到,我的程式 power on 的時候,時間顯示 00 00 再來 0.5 秒後時間顯示 00:00 再來就要1分鐘後才會顯示 00:01,然後開始正常動作, : -> 1秒亮滅一次(0.5秒亮,0.5秒滅) : 的顯示是在 Timer1 中斷直接處理,時間顯示是在時間顯示副程式處理, 也就是說 power on 時,大約1秒左右,Timer1 第一次中斷有執行到(: 有顯示出來),再來 Timer1 中斷就間隔 1 分鐘以後才又執行到, 依這樣分析好像是程式有問題,不過 power on 以後每次 reset 時間顯示都正常(馬上就動作了),這樣感覺程式好象又沒問題 ![]() 不知哪裡出了問題? ![]() 難道是一開始有震盪起來,後來又掉下來,再來又震盪起來 ![]() 明天到公司的時候再照Ryang板主及Beee的建議來debugger看看,看能不能找出哪裡出問題 一有蛛絲馬跡就馬上PO上來跟大家討論 ![]() 再次謝謝大家的回答 ![]() 祝大家晚安 ![]() ![]()
發表於: 2009/12/1 23:23
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
MCU : 16F1936 , 主頻率 : 8M 內振 , TIMER0 = FOC /2 = 1 us
發表於: 2009/12/1 18:51
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
承版主指示 , 用這一小段程式 看 TIMER1 起振花了多少時間 ......
發表於: 2009/12/1 15:29
Edited by Beee on 2009年12月01日 17:09:00
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
1. 以主振盪模式來說 有 LP , XT , HS 三種模式 , 32.768Khz 是屬於 LP 低功耗模式
發表於: 2009/12/1 14:47
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
問你一個問題 : Crystal 的起震時間與頻率有沒有關係?
答案是Crystal 頻率越高起振時間時間越短,4 MHz 約 1x mS 就起振了,而 32768Hz 的Crystal 需 500mS ~ 780mS 左右,且還跟工作電壓有關。所以說開機後約 1Sec 才會正常顯示也就不奇怪了。 但你的程式要一分鐘才會正常顯示... 這就要配合設定中斷點的方式去除錯了,看看多久發生第一次的中斷...
發表於: 2009/12/1 13:52
|
|||
|