主题:关于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!

  单帖管理 | 引用 | 回复 回到顶部

返回首页

关于IRQ7中断

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: