主題:關于IRQ7中斷 共有36991人關注過本帖 |
---|
立搏得 |
1樓 |
關于IRQ7中斷 Post By:2006-1-16 11:22:00 [只看該作者]
我們用Etr100在寫IRQ7中斷服務程序的時候,老是一中斷就死機,里面用到了gettime函數,只要將gettime調用屏蔽,好象就不死了,但在主程序中未用該函數。
    為保證取得中斷時間的實時性,gettime又不能屏蔽,應該如何解決呢,另外gettime取得的時間只能精確到0.01秒,能否有其他辦法使獲取的時間精度更高。     急求解答,謝謝! |
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2006-1-16 17:16:00 [只看該作者]
在中斷程序中不能調用DOS的系統函數,gettime()就是其中之一,否則會造成系統重入而死機。
想得到中斷時刻更精確的時間需要做以下工作: (1)讀取系統當前tick值       disable( );      unsigned long currtick = (unsigned long)(0x0040006CL);      enable( );      每個tick = 54.9255ms (2)讀取系統timer0當前值      unsigned int currcnt = ReadTimer0();  //在ETR100.H中有      每個計數值 = 0.875us 然后在主程序中再把上述值轉換成時間。 good luck! |
|
單帖管理 | 引用 | 回復 |