• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






發生一件很奇怪的問題~請大大幫忙(急)
#1
初級會員
初級會員


查看用戶資訊
請問一下
我發生了一件非常奇怪的事情

就是我利用TIMER1的中斷方法來讓燈閃爍
在Debug和programer下run都沒問題

但用單部執行看暫存器的狀態卻很不正常
例如:timer1數到我所設定的值~中斷旗標卻沒有舉起來
也就是中斷沒有產生

但我用autorun卻可以讓燈閃爍
(這代表我應該有進去中斷副程式吧)

我目前使用的版子是自己洗的
ic是dspic30f2023

希望有碰過一樣問題的大大可以幫我解答一下
看是自己洗的版子出問題~還是說我的程式有哪邊沒設定到
謝謝

發表於: 2007/7/22 11:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#2
初級會員
初級會員


查看用戶資訊
我自己在補充一下我剛剛弄的情形
我在MPLAB SIM模式下測試
程式會有中斷的產生

但是在debug的模式下不行

==>這是不是代表我的硬體上面有問題

如果是的話~有經驗的大大
可以給個方向是哪邊有可能出問題嗎

謝謝

發表於: 2007/7/22 15:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#3
版主
版主


查看用戶資訊
ICD2 並不是一台數萬元的模擬器,所以說它不具有 Real-Time 的功能。當你用 ICD2 作單部除錯時(STEP) Timer 等周邊還是會在執行 ICD2 的監督程式 (Debug Program) 還是會繼續跑,因為需要 Clock 執行,所以 Timer 值會與實際值有誤差,最好是設中斷點來除錯,這中間的差異性就讓你動腦筋想一想箇中之差異。 

ICE2000 & ICE4000 就不會有此情形出現。

發表於: 2007/7/22 23:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#4
初級會員
初級會員


查看用戶資訊
版主的回答其實我有點不請楚耶

我先說我目前的狀況
我的版子上面只有燒錄的周邊~其餘什麼都沒有
連外部震盪器都沒有
全都是用IC內部的功能

而測試的部份
是把值丟到timer1的PR1裡
假設值是0X0010
那麼當TMR上屬到0X0010照理說應該會跑到中斷副程式
但卻沒有
(此情形是在單部執行下發生)

而我中斷點設在中斷副程式裡
當我用(Run)這個指令直接執行
的確會跑到中斷副程式
可是中斷暫存器裡的值卻不正確
例如:旗標有時沒有舉起來
或是明明已經跳出去了
但中斷旗標卻沒有清掉

只要在MPLAB SIM的模式下執行
程式動作則完全正確

以上這些問題不知道是不是就像版主回答的答案一樣
請版主在幫我回答一次
謝謝

發表於: 2007/7/23 0:47
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#5
資深會員
資深會員


查看用戶資訊
PIC的timer是上數計數器,例如:你設tmr1L=0x10,tmr1H=0,則會一直累加到tmr1L=0xFF,tmr1H=0xFF,再累加到0000時會發生中斷,進入中斷副程式.
timer1並沒有PR1這個暫存吧.
ICD2使用單步執行,無法發生中斷,只有用斷點中斷才會進入中斷,另外進入中斷後,中斷旗標要寫程式清除,不然一離開中斷程式則馬上會再中斷.

發表於: 2007/7/23 8:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#6
初級會員
初級會員


查看用戶資訊
它是有PR1這個暫存器的

我用的是dspic30f系列的
她可以設定想要的值產生中斷
不一定要上數到0xffff才會產生中斷

而我用debug在產生中斷的時候
因為我在用dspic30f4011時
它的確只要數到我所設定的值
便會被拉到中斷副程式去
不管程式執行到哪邊
而我用dspic2023卻不行

而我去看他的datasheet timer的設定方式
和30f4011是一樣的
可是卻沒辦法
所以才會覺得很奇怪

唯一有變的是~我版子是自己洗的~ic是自己悍的

發表於: 2007/7/23 13:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 發生一件很奇怪的問題~請大大幫忙(急)
#7
版主
版主


查看用戶資訊
我只能這樣說比較簡單 : ICD2 並沒有使用 ICE 專用的 ME Chip,所以它無法 freeze 周邊。 所以當ICD2動作時,Tatget的 PIC 也會跟著執行監督程式,這時 Timer 因為有 CLock 的輸入也就跟著跑,實際上我們這時候是要 Timer 停下來的,所以實際觀察到的 Timer 值會有很大的誤差。

發表於: 2007/7/25 15:46
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... ]

教育訓練中心

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