音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

這個中斷沖突如何處理

作者:leexiaowu 欄目:單片機
這個中斷沖突如何處理
這個中斷沖突如何處理

程序功能 正反方向計數(shù)并通過串口發(fā)送出去 計數(shù)脈沖通過14腳輸入,通過P0.1口的輸入高
低電平判定正、反轉(zhuǎn)方向,每10ms讀一次計數(shù)器值將差值累加到基準上去‘

現(xiàn)在的問題
通過串口有時候數(shù)據(jù)會突然增大或者減少 下一次發(fā)送的時候 又恢復正常
通過仿真觀察 在串口發(fā)送前的數(shù)據(jù)轉(zhuǎn)換是對 通過串口發(fā)送時 數(shù)據(jù)發(fā)生改變
有網(wǎng)友說是中斷沖突

現(xiàn)在把串口的優(yōu)先級定在最高
發(fā)送數(shù)據(jù)時 把所有的中斷關掉了 還是一樣的故障

那么該如何解決 謝謝
   如 發(fā)送出的數(shù)據(jù)為
      10000
        500
      11000


請各位指教
3x

2樓: >>參與討論
freego
“通過串口有時候數(shù)據(jù)會突然增大或者減少”
是值還是字節(jié)數(shù)?沒法看懂你的意思

3樓: >>參與討論
maychang
考慮不同中斷發(fā)生時
是否將緩沖區(qū)中數(shù)據(jù)修改了。

4樓: >>參與討論
leexiaowu
是值 數(shù)值發(fā)生變化
是值 數(shù)值發(fā)生變化

5樓: >>參與討論
leexiaowu
處理過程
定時時間到 讀計數(shù)器值 設置標志位
主程序掃描到 標志位 將計數(shù)值存入變量中 轉(zhuǎn)化為字符串 發(fā)送出去 清除標志位

6樓: >>參與討論
leexiaowu
一點縫也沒有
誰遇到過這樣的問題嗎?

7樓: >>參與討論
leexiaowu
今天晚上無法入眠
今天晚上無法入眠 這個東西好象就這里有問題 已經(jīng)折騰我?guī)滋炝?br>誰知道的請指點一條光明大道
下班了
88

8樓: >>參與討論
xwj
1、串口發(fā)送要檢查TI位,2、很可能是數(shù)據(jù)處理有BUG
 
9樓: >>參與討論
leexiaowu
問題解決了 可是不明白為什么會是這樣的
問題解決了 可是不明白為什么會是這樣的?
改過的程序
原來是字節(jié)的高4位是0就不發(fā)送 節(jié)約發(fā)送的時間
改動后 變成固定長度發(fā)送 這樣就好了
可我不明白為什么這樣就能成功的發(fā)送  而前面那種會突然增大和減少

               for(i=0;i<20;i++)
                 sbuff[i]=0;
               if(bytconsendf==21)
                  bytconsendf=0;
               i=0;          
               sbuff[0]='$';
               
               //前進方向的
               slen=1;
               iCntFT=iCntF;
               iCntBT=iCntB;
             
               tt1=((iCntFT>>16)&0x7fff);  //高四個字節(jié)
               tt2=(iCntFT%65536ul)&0xffff;            //低四個字節(jié)    
               tt3=((iCntBT>>16)&0x7fff);  //高四個字節(jié)
               tt4=(iCntBT%65536ul)&0xffff;            //低四個字節(jié)
             //  if(tt1!=0)  (這里原來沒有注釋)
             //  {            (這里原來沒有注釋)
                 i2s(tt1);              
                 for(i=0;i<=3;i++)
                   {
                     sbuff[slen+i]=t2[3-i];
                   }  
                 slen=slen+4;
             //  }            (這里原來沒有注釋)
               tt1=tt2 & 0xffff;
               i2s(tt1);
                 
               for(i=0;i<=3;i++)
                {
                  sbuff[slen+i]=t2[3-i];
                }            
                slen=slen+4;        
                sbuff[slen]='@';
                slen=slen+1;
               
               //后退方向的
            //   tt1=((iCntBT>>16)&0x7fff);  //高四個字節(jié)
            //   tt2=(iCntBT%65536ul)&0xffff;            //低四個字節(jié)
                psend=(psend+1)%3;
              sendb[psend]=iCntBT;
             //  if(tt3!=0)             (這里原來沒有注釋)原來是字節(jié)的高4位是0就不發(fā)送 節(jié)約發(fā)送的時間
             //  {                       (這里原來沒有注釋)
                 i2s(tt3);           
                 for(i=0;i<=3;i++)
                 {
                   sbuff[slen+i]=t2[3-i];
                 }  
                  slen=slen+4;    
          //     }                      (這里原來沒有注釋)原來是字節(jié)的高4位是0就不發(fā)送 節(jié)約發(fā)送的時間
               i2s(tt4);                          
               
               for(i=0;i<=3;i++)
               {
              
10樓: >>參與討論
leexiaowu
可能是數(shù)據(jù)處理有BUG?
to :xwj
每次發(fā)送兩個數(shù)據(jù) 所有的數(shù)據(jù)處理調(diào)用的是同一個處理的函數(shù) 所有如果有問題的 發(fā)送的數(shù)據(jù)應該都有問題 而不只有一個數(shù)據(jù)有問題 而另外一個數(shù)據(jù)沒有問題
所以我看不是數(shù)據(jù)處理這里有問題

現(xiàn)在問題解決了 可是不清楚為什么會是這樣的


11樓: >>參與討論
leexiaowu
知道的說一說
知道的說一說
不勝感激

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
請大家推薦一款電壓轉(zhuǎn)電流的芯片
請教一個單片機程序仿真方面的問題
Atmega16多機通訊求助各位!!調(diào)了好久都不通。!先謝。。
PC與單片機的通信
T6963C液晶驅(qū)動問題,急!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號