Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
ISR
將相關的暫存器 放在 0x70 ~ 0x7F 不需要切換 BANK 版主提供的 範例
MOVWF W_TEMP ; save off current W register contents
發表於: 2009/11/24 14:35
|
|||
少年不知愁滋味,老來方知路難行。
|
||||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
謝謝Ryang板主的回覆
![]() 早上我有在中斷副程式加入儲存PCLATH的動作 不過結果還是一樣 ![]() 我是這樣寫的
ISR
我有試著把程式縮短,例如將一些比較不重要沒用到的部份註解掉, 結果時間顯示從 00:00 動兩下,就不動了 ![]() 但程式還活著,應我有在無窮迴圈加入LED的亮滅控制,只要看LED就知道主程式部份是否還在執行, 如果將程式縮到1個page以內,例如縮到page0(0005h~07ffh)以內, 時間顯示從 00:00 ~23:59 一直循環都很正常, 只要把時間顯示的程式碼移到page1(0800h~0fffh)就會出現0顯示完馬上變為8,1~9 也一樣的情形 ![]() 感覺好像是程式記憶體亂掉 ![]() 趕快來去看範例程式 ![]() 一有結果再PO上來跟大家分享一下 ![]() 再次謝謝shpehg及Ryang板主的回覆 ![]()
發表於: 2009/11/24 13:46
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
版主
![]() ![]() ![]() |
參考一下Microchip 所提供的套用檔案 : C:\Program Files\Microchip\MPASM Suite\Template\Code\16F946TEMP.asm
注意一下有關中斷的背景儲存部份(底下紅色部份),請參考底下方撰寫,因為 Zero Flag 會受 movf 的指令引響所以需用 SWAP 的指令交會儲存。 程式超過 2kW 以上有要切換 Page 時,最好在程式裡的每個 GOTO 及 CALL 指令前直接加上PAGESEL 的指令。這樣每次呼叫都可以正確的取得 Page 資料這樣就不會跳錯 Page。還有 Return 回去時原則上是不要管PCLATH 的。
list p=16f946 ; list directive to define processor
發表於: 2009/11/24 11:03
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
謝謝shpehg的回覆
![]() 中斷副程式中我沒有存到PCLATH, 等一下改來試試 ![]() 從板子上拆下來的震盪器都有問題 ![]() 我再來去買一些新的試試看 有結果再PO上來跟大家分享一下 ![]()
發表於: 2009/11/24 8:30
|
|||
|
Re: 使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
資深會員
![]() ![]() ![]() |
1.
錯誤方法
ORG 0x0004
建議
ORG 0x0004
2. 震盪超過 1.6V 才會正常
發表於: 2009/11/24 7:59
Edited by shpeng on 2009年11月24日 08:14:40
Edited by shpeng on 2009年11月24日 08:15:26 |
|||
少年不知愁滋味,老來方知路難行。
|
||||
|
使用PIC16F946遇到pagesel問題跟timer1外接32768Hz震盪器問題
|
||||
---|---|---|---|---|
初級會員
![]() ![]() ![]() |
目前使用PIC16F946再開發產品遇到了一些問題,提出來請大家指點一下,
Configuration設定為:
以上兩點問題請大家指導一下,謝謝 ![]()
發表於: 2009/11/23 11:10
Edited by r620 on 2009年11月23日 13:36:52
|
|||
|