主题:关于IRQ7中断 共有31460人关注过本帖 |
---|
立搏得 |
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! |
|
单帖管理 | 引用 | 回复 |