WEB开发网
开发学院软件开发C++ 利用中断实现每500毫秒接收一次数据 阅读

利用中断实现每500毫秒接收一次数据

 2008-03-08 12:44:08 来源:WEB开发网   
核心提示: //调用DOS下的中断,//DOS的时钟中断 int 21HAH=0x1C每秒产生18.2次中断//该程序时间间隔为550毫秒可以由count的值算出,利用中断实现每500毫秒接收一次数据,#include <stdio.h>#include <dos.h>#include <conio
 //调用DOS下的中断。
//DOS的时钟中断 int 21H AH=0x1C 每秒产生18.2次中断
//该程序时间间隔为550毫秒 可以由count的值算出。 #include <stdio.h>
#include <dos.h>
#include <conio.h> #define INTR 0X1C  //0x1c为时钟中断 #ifdef __cplusplus
 #define __CPPARGS ...
#else
 #define __CPPARGS
#endif void interrupt ( *oldhandler)(__CPPARGS);  int count=0;
int a=0,b=0;
strUCt time t; void interrupt handler(__CPPARGS) // 执行DOS中断时调用的程序
{
  count++;   if(count==10) 
  {  gettime(&t);
     b=t.ti_hund; 
     PRintf("(2)  %d\n",b);
     if(b<a)printf("Delay %d ms",((100-a)+b)*10);
     else printf("Delay %d ms",(b-a)*10);}
} int main(void)
{   oldhandler = getvect(INTR); //取得原来的中断向量   setvect(INTR, handler);   //设置现在的中断向量
  gettime(&t);a=t.ti_hund;
  printf("(1)  %d\n",a);   while (count < 11);     //循环等待。执行DOS的时钟中断   setvect(INTR, oldhandler); //执行完毕,恢复原来的中断向量   return 0;
}

Tags:利用 中断 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接