1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2866|回復: 8
收起左側

單片機外部中斷為何會自行停止執行

[復制鏈接]
ID:241231 發表于 2017-10-20 11:46 | 顯示全部樓層 |閱讀模式
是因為外部中斷有時間上的限制,必須在限制的時間內處理完中斷中的資料,或者是因為中斷中的code和指令下的太多造成自行停止執行的現象.
回復

使用道具 舉報

ID:241468 發表于 2017-10-21 01:29 | 顯示全部樓層
處理完后,有沒有清除中斷標志位?
回復

使用道具 舉報

ID:241468 發表于 2017-10-21 01:31 | 顯示全部樓層
處理完中斷后,有沒有清楚中斷標志位呢
回復

使用道具 舉報

ID:213173 發表于 2017-10-21 07:43 | 顯示全部樓層
51單片機對于外部中斷響應沒有時間限制,只對觸發信號要求應至少維持2個系統時鐘。當外部中斷服務程序被響應后,中斷請求標志位會自動被清0。不過在實際應用中不宜在中斷服務程序里執行過多指令。
回復

使用道具 舉報

ID:241231 發表于 2017-10-21 07:58 | 顯示全部樓層
在中斷一開始就己經清除中斷標誌了,但不知為什麼就是不能將整個中斷完整的處理完成,是否是因為回圈太大(8*8),或者是中斷程式有其它的限制還是有什麼特別的指令要下呢?
回復

使用道具 舉報

ID:111634 發表于 2017-10-21 08:00 | 顯示全部樓層
外部中斷沒有時間上的限制,取決于電路結構和程序編制!
回復

使用道具 舉報

ID:105206 發表于 2017-10-21 08:23 | 顯示全部樓層
應該是你的程序有問題。看看外部中斷的相關資料,只有幾個指令。
回復

使用道具 舉報

ID:241231 發表于 2017-10-21 09:38 | 顯示全部樓層
jubaolun 發表于 2017-10-21 08:23
應該是你的程序有問題。看看外部中斷的相關資料,只有幾個指令。

我的回圈一開始是4*8,因發現抓的資料不足以判段,故增加致8*8,中斷程式就停滯了,一開始我也認為可能是回圈太大了,我降回5*8,也還是不行,只有4*8程式才能正常運行,以上請悉知.
回復

使用道具 舉報

ID:241231 發表于 2017-10-21 17:24 | 顯示全部樓層
wulin 發表于 2017-10-21 07:43
51單片機對于外部中斷響應沒有時間限制,只對觸發信號要求應至少維持2個系統時鐘。當外部中斷服務程序被響 ...

我的程式就那麼簡單,我只是將j<4;改成j<8而己程式就不知跑去那裡了


for (j=0;j<4;j++)         //收集四組數據
{
  for (k=0;k<8;k++)        //每組數據有8位
  {
                        while (IRIN)            //等 IR 變為低電平,跳過4.5ms的前導高電平信號。
                        {delay(1);}
                        while (!IRIN)          //等 IR 變為高電平
                        {delay(1);}
                        while (IRIN)           //計算IR高電平時長
                        {
                                delay(1);
                                N++;           
                                if (N>=30)
                                {  
                                        goto ENDFO;
                                }                  //0.14ms計數過長自動離開。
      }                        //高電平計數完畢               
     IRCOM[j]=IRCOM[j] >> 1;                  //數據最高位補“0”
     if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}  //數據最高位補“1”
     N=0;
  }//end for k
}//end for j
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表