回复帖子:(立搏得(0.0.*.*))关于IRQ7中断

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2006-1-16 17:16:00)
--  作者:x10(0.0.*.*)
--  
在中断程序中不能调用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!

主题最新回顾(发布时间:2006-1-16 11:22:00)
--  作者:立搏得(0.0.*.*)
--  关于IRQ7中断
我们用Etr100在写IRQ7中断服务程序的时候,老是一中断就死机,里面用到了gettime函数,只要将gettime调用屏蔽,好象就不死了,但在主程序中未用该函数。
    为保证取得中断时间的实时性,gettime又不能屏蔽,应该如何解决呢,另外gettime取得的时间只能精确到0.01秒,能否有其他办法使获取的时间精度更高。
    急求解答,谢谢!