Re: 發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
初級會員
|
它是有PR1這個暫存器的
我用的是dspic30f系列的 她可以設定想要的值產生中斷 不一定要上數到0xffff才會產生中斷 而我用debug在產生中斷的時候 因為我在用dspic30f4011時 它的確只要數到我所設定的值 便會被拉到中斷副程式去 不管程式執行到哪邊 而我用dspic2023卻不行 而我去看他的datasheet timer的設定方式 和30f4011是一樣的 可是卻沒辦法 所以才會覺得很奇怪 唯一有變的是~我版子是自己洗的~ic是自己悍的
發表於: 2007/7/23 13:04
|
|||
|
Re: 發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
資深會員
|
PIC的timer是上數計數器,例如:你設tmr1L=0x10,tmr1H=0,則會一直累加到tmr1L=0xFF,tmr1H=0xFF,再累加到0000時會發生中斷,進入中斷副程式.
timer1並沒有PR1這個暫存吧. ICD2使用單步執行,無法發生中斷,只有用斷點中斷才會進入中斷,另外進入中斷後,中斷旗標要寫程式清除,不然一離開中斷程式則馬上會再中斷.
發表於: 2007/7/23 8:33
|
|||
|
Re: 發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
初級會員
|
版主的回答其實我有點不請楚耶
我先說我目前的狀況 我的版子上面只有燒錄的周邊~其餘什麼都沒有 連外部震盪器都沒有 全都是用IC內部的功能 而測試的部份 是把值丟到timer1的PR1裡 假設值是0X0010 那麼當TMR上屬到0X0010照理說應該會跑到中斷副程式 但卻沒有 (此情形是在單部執行下發生) 而我中斷點設在中斷副程式裡 當我用(Run)這個指令直接執行 的確會跑到中斷副程式 可是中斷暫存器裡的值卻不正確 例如:旗標有時沒有舉起來 或是明明已經跳出去了 但中斷旗標卻沒有清掉 只要在MPLAB SIM的模式下執行 程式動作則完全正確 以上這些問題不知道是不是就像版主回答的答案一樣 請版主在幫我回答一次 謝謝
發表於: 2007/7/23 0:47
|
|||
|
Re: 發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
版主
|
ICD2 並不是一台數萬元的模擬器,所以說它不具有 Real-Time 的功能。當你用 ICD2 作單部除錯時(STEP) Timer 等周邊還是會在執行 ICD2 的監督程式 (Debug Program) 還是會繼續跑,因為需要 Clock 執行,所以 Timer 值會與實際值有誤差,最好是設中斷點來除錯,這中間的差異性就讓你動腦筋想一想箇中之差異。
ICE2000 & ICE4000 就不會有此情形出現。
發表於: 2007/7/22 23:04
|
|||
|
Re: 發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
初級會員
|
我自己在補充一下我剛剛弄的情形
我在MPLAB SIM模式下測試 程式會有中斷的產生 但是在debug的模式下不行 ==>這是不是代表我的硬體上面有問題 如果是的話~有經驗的大大 可以給個方向是哪邊有可能出問題嗎 謝謝
發表於: 2007/7/22 15:38
|
|||
|
發生一件很奇怪的問題~請大大幫忙(急)
|
||||
---|---|---|---|---|
初級會員
|
請問一下
我發生了一件非常奇怪的事情 就是我利用TIMER1的中斷方法來讓燈閃爍 在Debug和programer下run都沒問題 但用單部執行看暫存器的狀態卻很不正常 例如:timer1數到我所設定的值~中斷旗標卻沒有舉起來 也就是中斷沒有產生 但我用autorun卻可以讓燈閃爍 (這代表我應該有進去中斷副程式吧) 我目前使用的版子是自己洗的 ic是dspic30f2023 希望有碰過一樣問題的大大可以幫我解答一下 看是自己洗的版子出問題~還是說我的程式有哪邊沒設定到 謝謝
發表於: 2007/7/22 11:41
|
|||
|