|
|||||||||||
| 技術(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 |
C51中斷函數(shù)里面能調(diào)用其它函數(shù)嗎?怎么樣調(diào)用才好? |
| 作者:成就自我 欄目:單片機 |
C51中斷函數(shù)里面能調(diào)用其它函數(shù)嗎?怎么樣調(diào)用才好? |
| 2樓: | >>參與討論 |
| 作者: 平常人 于 2006/12/2 10:41:00 發(fā)布:
你自己試過嗎?不明白你的問題,你要怎么樣調(diào)用? 函數(shù)都是直接調(diào)用,何以有“怎么樣調(diào)用才好”的問題? |
|
| 3樓: | >>參與討論 |
| 作者: lpf336 于 2006/12/2 12:18:00 發(fā)布:
中斷函數(shù)盡量寫的短一點 |
|
| 4樓: | >>參與討論 |
| 作者: computer00 于 2006/12/2 13:07:00 發(fā)布:
c51的中斷調(diào)用函數(shù)牽涉到可重入問題,自己用“重入”搜索一下 |
|
| 5樓: | >>參與討論 |
| 作者: 一朝成名 于 2006/12/2 17:53:00 發(fā)布:
有點迷糊 我新手,也是才接觸 還要努力啊 |
|
| 6樓: | >>參與討論 |
| 作者: zoupeng139 于 2006/12/2 18:29:00 發(fā)布:
我得顯示總出問題,有人說是中斷調(diào)用顯示程序的結(jié)果 還是不理解 |
|
| 7樓: | >>參與討論 |
| 作者: 123654789 于 2006/12/3 22:17:00 發(fā)布:
可以 |
|
| 8樓: | >>參與討論 |
| 作者: lucidmask 于 2006/12/4 9:12:00 發(fā)布:
re 注意重入,另外就是中斷和其所調(diào)用的函數(shù)要用同一個bank的寄存器組 |
|
| 9樓: | >>參與討論 |
| 作者: 午夜幽風 于 2006/12/4 10:25:00 發(fā)布:
re 最好不要用,經(jīng)常會有莫名其妙的問題 |
|
| 10樓: | >>參與討論 |
| 作者: lixun00 于 2006/12/4 15:50:00 發(fā)布:
改startup.a51程序。。。 依據(jù)內(nèi)存規(guī)模設(shè)置重入堆棧的起始地址和大小,在函數(shù)申明和定義處加上關(guān)鍵詞reentrant. //////startup.a51 ; Stack Space for reentrant functions in the COMPACT MODEL. PBPSTACK EQU 1 ; set to 1 if compact reentrant is ///////////used. PBPSTACKTOP EQU 00080H+1; set top of stack to highest ////////////location+1. void Locate(uchar x,uchar y)reentrant; void Locate(uchar ucLcm_X,uchar ucLcm_Y) reentrant { ucLcm_Y = ucLcm_Y & 0x03; ucLcm_Y = Disp_Position[ucLcm_Y] + ucLcm_X % 20; // bLcm_Busy = 0x01; LcmWriteCommand(ucLcm_Y | 0x80); } 或者你利用[++sp] = var; 退出時在--sp;也可以 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |