找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3717|回復(fù): 7
收起左側(cè)

為什么51定時器中斷標志用手動清除失?

[復(fù)制鏈接]
ID:184267 發(fā)表于 2018-3-30 13:47 | 顯示全部樓層 |閱讀模式
10黑幣
本帖最后由 MHNMHN 于 2018-3-30 23:14 編輯
  1. 失敗的代碼
復(fù)制代碼
  1. 成功的代碼
復(fù)制代碼
上面那個是手動清除標志位,后面那個用中斷函數(shù)清除標志位搞不懂為什么下面的代碼能運行成功,上面那個不行
失敗的代碼貌似跑不出來.....




回復(fù)

使用道具 舉報

ID:299825 發(fā)表于 2018-3-31 11:15 | 顯示全部樓層
應(yīng)該是到你響應(yīng)中斷或者軟件清中斷標志位為止吧。
外部中斷等不大清楚。內(nèi)部的計時器等應(yīng)該可以讀到相應(yīng)的標志位的。
回復(fù)

使用道具 舉報

ID:299858 發(fā)表于 2018-3-31 12:58 | 顯示全部樓層
看不到代碼
回復(fù)

使用道具 舉報

ID:251236 發(fā)表于 2018-3-31 15:15 | 顯示全部樓層
先把引起中斷的條件去除,如果是中斷發(fā)生的頻率很高,而你卻是用仿真的方法來觀察中斷標志位,或許會出現(xiàn)你說的情況
回復(fù)

使用道具 舉報

ID:251236 發(fā)表于 2018-3-31 15:16 | 顯示全部樓層
有的單片機,標志位的清除的指令:寫1清除,不是直接寫0
回復(fù)

使用道具 舉報

ID:184267 發(fā)表于 2018-3-31 16:06 | 顯示全部樓層
代碼我再發(fā)上來
  1. 失敗代碼
  2. void delay()
  3. {
  4.         TR0=1;
  5.         TH0=0x1f;
  6.         TL0=0xfb;
  7.         while(TF0==0);
  8.         TF0=0;       
  9. }
復(fù)制代碼

  1. 成功代碼
  2. void delay()
  3. {
  4.         TR0=1;
  5.         TH0=0x1f;
  6.         TL0=0xfb;
  7.         while(TF0==0);       
  8. }

  9. void Timer0Interrupt(void) interrupt 1
  10. {
  11.     TH0 = 0x1F;
  12.     TL0 = 0xFB;
  13. }
復(fù)制代碼
回復(fù)

使用道具 舉報

ID:184267 發(fā)表于 2018-4-1 12:22 | 顯示全部樓層
回復(fù)

使用道具 舉報

ID:295783 發(fā)表于 2018-4-1 17:40 | 顯示全部樓層
一步一步來 一小部分一小部分的排除 這樣能準確的找到問題的所在
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表