|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
程序突然復(fù)位,請給點意見。 |
| 作者:d0513 欄目:單片機 |
我正在用匯編編制一個pic876程序,用紅外通信。 經(jīng)常在通信時程序會突然復(fù)位,而且不是每一次通信都會發(fā)生。 我考慮復(fù)位的原因如下: 1、芯片上電復(fù)位 2、MCLR引腳低電平復(fù)位 3、WDT復(fù)位 4、掉電鎖定復(fù)位 我是在仿真器和片內(nèi)運行程序都會出現(xiàn)這種狀況,所以應(yīng)該跟電源,復(fù)位引腳都沒有關(guān)系的。 程序中T1定時1ms,清WDT寄存器,即使程序跑飛也能夠即時清WDT寄存器的。 另外如果是因為堆棧溢出,我試了特意讓程序堆棧溢出,發(fā)現(xiàn)程序跑飛也是有規(guī)律的,不會跑到起始的位置。除非剛好跑到一個往起始跳轉(zhuǎn)的語句,但我的程序中沒有,所以我感覺程序突然復(fù)位跟堆棧溢出沒關(guān)系。 不知道各位單片機高手在編程中有沒有發(fā)現(xiàn)類似的問題,提提意見吧。 為這個問題很是郁悶! |
| 2樓: | >>參與討論 |
| 作者: d0513 于 2003/5/26 14:27:00 發(fā)布:
我發(fā)現(xiàn)堆棧溢出之后程序總是會跳到上一級的return處 我發(fā)現(xiàn)堆棧溢出之后程序總是會跳到上一級的return處 |
|
| 3樓: | >>參與討論 |
| 作者: huiyixx 于 2003/5/26 18:47:00 發(fā)布:
WDT復(fù)位 |
|
| 4樓: | >>參與討論 |
| 作者: huiyixx 于 2003/5/26 18:49:00 發(fā)布:
最大可能 T1 溢出復(fù)位 |
|
| 5樓: | >>參與討論 |
| 作者: 旅洋 于 2003/6/28 16:27:00 發(fā)布:
給你點意見。 我前段時間用F873時碰到了差不多的問題,不過不是復(fù)位。 我也在通訊時出現(xiàn)故障,也不是每次出現(xiàn)。后來發(fā)現(xiàn)由于在程序中涉及到頁的問題堆棧設(shè)置出現(xiàn)錯誤,導(dǎo)致程序跑飛。對了,你的T1中斷是否正常? |
|
| 6樓: | >>參與討論 |
| 作者: louis.liu 于 2003/6/28 16:57:00 發(fā)布:
papesel error ? 請檢查你的CALL,GOTO指令前是否指定正確的PAGE。 |
|
| 7樓: | >>參與討論 |
| 作者: 山水 于 2003/6/29 1:19:00 發(fā)布:
你有沒有開放其它中斷? 中斷服務(wù)程序最長要運行多少時間? |
|
| 8樓: | >>參與討論 |
| 作者: h97414112 于 2003/6/30 16:33:00 發(fā)布:
猜測而已 是不是只有在紅外通訊的情況下才會出現(xiàn)這樣的情況。我在測試過程中也碰到這樣的問題,可能是程序來不及處理才會出現(xiàn)這樣的情況,你試試把程序處理的速度放的緩一點看看有沒有效果。 |
|
| 9樓: | >>參與討論 |
| 作者: d0513 于 2003/7/14 16:39:00 發(fā)布:
謝謝大家 一直沒有找到原因,但程序和電路都做了些改動。 程序開通了T0,T1,串行發(fā)送、接受,int0中斷,我把原來T1中斷執(zhí)行的很長的程序大部分轉(zhuǎn)到主程序中執(zhí)行,減少中斷運行的時間。主程序的結(jié)構(gòu)做了調(diào)整,電路板也重新布局,現(xiàn)在已經(jīng)沒有復(fù)位的問題了。 |
|
| 10樓: | >>參與討論 |
| 作者: zbby 于 2003/7/14 23:06:00 發(fā)布:
哎呀,太巧了,我也是876a復(fù)位 我正在被一個876的撫慰高的非常蠶, 環(huán)境:876a,ht-c,2510 我這里曲調(diào)采集之后,只有寫EEPROM,和can通訊兩個任務(wù),寫EEPROM我反復(fù)用模擬,沒有觀察到死訊換, 所以懷疑是spi口線上和2510的通訊引起撫慰或死循環(huán). 我計劃明天降低spi的通訊速度,更改spi的地層函數(shù)(曲調(diào)do ... while(readspi());這樣的結(jié)構(gòu), 希望大家給出一些其他的考慮, 多謝幫助, |
|
| 11樓: | >>參與討論 |
| 作者: 小管 于 2003/7/16 22:41:00 發(fā)布:
你應(yīng)該考慮是不是外界光線的干擾! 我用51的時候也碰到過這個問題,我用232控制燈光的時候就復(fù)位,原來是燈光干擾紅外接收頭,導(dǎo)致返回中斷的時候出錯。后來把232 的中斷設(shè)為最高后就沒問題了! 看來是你考慮的不周到! * - 本貼最后修改時間:2003-7-16 22:43:59 修改者:小管 |
|
| 12樓: | >>參與討論 |
| 作者: kingpoo 于 2003/7/17 8:59:00 發(fā)布:
我的也是這樣!但不是復(fù)位! 我的也是這樣!但不是復(fù)位!只是系統(tǒng)無法正確執(zhí)行原來的功能,并且不是所有的都這樣,還有都是運行幾個小時后出的問題!不知道會不會也是這個原因? |
|
| 13樓: | >>參與討論 |
| 作者: d0513 于 2003/8/20 18:28:00 發(fā)布:
re 問題一直存在,只是偶爾發(fā)生,有時又很正常。 |
|
| 14樓: | >>參與討論 |
| 作者: hotpower 于 2003/8/20 19:54:00 發(fā)布:
軟故障一定要查明原因,否則后患無窮 |
|
| 15樓: | >>參與討論 |
| 作者: skysky 于 2003/8/21 9:56:00 發(fā)布:
是不是中斷的問題,你都用了那些中斷? 我也感覺有問題,但還是避開了。 最好找出來,不然什么時候用到了可慘了。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |