|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
連續(xù)的_nop_() |
| 作者:babyfans 欄目:單片機(jī) |
連續(xù)的_nop_()是否會(huì)影響51對(duì)外部中斷的響應(yīng).我的程序當(dāng)中有對(duì)E2PROM的讀寫(xiě).我發(fā)現(xiàn)有時(shí)候,明明只有一個(gè)邊沿脈沖來(lái)到,但中斷中的加一變量卻一次加了3.我想這就說(shuō)明它于一個(gè)邊沿脈沖,響應(yīng)了3次中斷.實(shí)在暈呀! |
| 2樓: | >>參與討論 |
| 作者: smileage 于 2006/6/12 22:20:00 發(fā)布:
我沒(méi)遇到過(guò) 有主要程序嗎?我想看一下 * - 本貼最后修改時(shí)間:2006-6-12 22:20:55 修改者:smileage |
|
| 3樓: | >>參與討論 |
| 作者: babyfans 于 2006/6/12 22:33:00 發(fā)布:
貼一點(diǎn)看看吧.看能看出來(lái)不 這樣的讀寫(xiě)程序(其中一點(diǎn)) #include <reg51.h> #include <absacc.h> #include <intrins.h> #define uCHAR unsigned CHAR #define uint unsigned int #define uLONG unsigned LONG #define _Nop() _nop_() void sendbyte(uCHAR c) { uCHAR bitcnt; for(bitcnt=0;bitcnt<8;bitcnt++) { if((c<<bitcnt)&0x80)s_sda=1; else s_sda=0; _Nop(); s_scl=1; _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); s_scl=0; } _Nop(); _Nop(); s_sda=1; _Nop(); _Nop(); s_scl=1; _Nop(); _Nop(); _Nop(); if(s_sda==1)ack=0; else ack=1; s_scl=0; _Nop(); _Nop(); } /**********************字節(jié)數(shù)據(jù)接收函數(shù)*******************************/ uCHAR rcvbyte(void) { uCHAR retc=0; uCHAR bitcnt; s_sda=1; for(bitcnt=0;bitcnt<8;bitcnt++) { _Nop(); s_scl=0; _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); s_scl=1; _Nop(); _Nop(); retc=retc<<1; if(s_sda==1)retc=retc+1; _Nop(); _Nop(); } s_scl=0; _Nop(); _Nop(); return(retc); } 中斷 void pulsecount(void) interrupt 0 using 1 { pulsecnt++; if(pulsecnt==36) { ele_value_new=1; pulsecnt==0; ele_value++; if(value_saved==1) { value_saved=0; ele_value=ele_value-value_saving } } pulse_new=1; /*有新脈沖*/ } |
|
| 4樓: | >>參與討論 |
| 作者: computer00 于 2006/6/12 22:52:00 發(fā)布:
不關(guān)nop的事。 |
|
| 5樓: | >>參與討論 |
| 作者: 滌綸 于 2006/6/13 7:28:00 發(fā)布:
回復(fù) 用示波器器看你的邊沿脈沖。 |
|
| 6樓: | >>參與討論 |
| 作者: xwj 于 2006/6/13 8:16:00 發(fā)布:
如果是機(jī)械按鍵或開(kāi)關(guān), 用示波器器看你的邊沿脈沖... 展開(kāi)后你會(huì)發(fā)現(xiàn)原來(lái)邊沿上 有成千上萬(wàn)個(gè)脈沖! |
|
| 7樓: | >>參與討論 |
| 作者: babyfans 于 2006/6/13 13:03:00 發(fā)布:
我暫時(shí)估計(jì)是脈沖的事情。 因?yàn)槲矣脝纹瑱C(jī)模擬脈沖,暫時(shí)還沒(méi)有發(fā)現(xiàn)問(wèn)題。我現(xiàn)用的是TKS-668S仿真器。我還沒(méi)有看萬(wàn)利的ME-52plus中運(yùn)行是否有問(wèn)題。 |
|
| 8樓: | >>參與討論 |
| 作者: babyfans 于 2006/6/13 13:08:00 發(fā)布:
是因?yàn)?br>我一開(kāi)始用的是萬(wàn)利的ME-52plus 時(shí)現(xiàn)象比較嚴(yán)重,后來(lái)我改用 TKS-668S (掛接到KEIL),一次計(jì)3個(gè)中斷的現(xiàn)象好多了。但是還沒(méi)有完全消除,估計(jì)是萬(wàn)利的仿真器設(shè)置不對(duì),再加上脈沖的問(wèn)題才導(dǎo)致了以上說(shuō)的不正常現(xiàn)象,現(xiàn)在只能得出這個(gè)結(jié)論了。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |