📄 time1.c
字号:
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
FILE *fp1;
FILE *fp2;
int counter=0;
int time1=0;
void interrupt ( *oldint1c)(__CPPARGS);
void interrupt ( *oldintc)(__CPPARGS);
void interrupt newint1c(__CPPARGS);
void interrupt newintc(__CPPARGS);
void interrupt newint1c(__CPPARGS)
{
counter++;
outportb(0x20,0x20);
}
void startint()
{
oldint1c=getvect(0x08);
setvect(0x08,newint1c);
}
void resetv()
{
setvect(0x08,oldint1c);
}
main()
{
clrscr();
counter=0;
clrscr();
gotoxy(24,23);
puts("Strike Esc to stop the demo.");
int i1=0;
disable();
outportb(0x20,0x20);
startint();
int i;
outportb(0x61,1); /* 0x61 port control GATE2*/
for(i=0;i<100;i++);
outportb(0x43,0xb8); // write counter 2
for(i=0;i<10;i++);
_BX=5966; //5 ms /1 interrupt
outportb(0x42,_BL);
for(i=0;i<10;i++);
outportb(0x42,_BH);
for(i=0;i<10;i++);
outportb(0x43,0x36); //reset counter 0 to 20 times
for(i=0;i<10;i++);
_BX=5966; //5 ms /1 interrupt
outportb(0x40,_BL);
for(i=0;i<10;i++);
outportb(0x40,_BH);
enable();
delay(50);
disable();
outportb(0x43,0x86);
_AL=inportb(0x42);
_AH=inportb(0x42);
i1=_AX;
// for(i=0;i<1000;i++);
i1=_AX;
float t1=float(_AX);
outportb(0x43,0x36);
outportb(0x40,0);
outportb(0x40,0);
setvect(0x08,oldint1c);
enable();
float t2=(5966.-t1)/5966.;
float t3=t2*5.;
gotoxy(3,10);
cprintf("counter is %d i1=%d,t1=%f t2=%f, t3=%f",counter,i1,t1,t2,t3);
gotoxy(24,23);
puts("Strike Esc to stop the demo.");
getch();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -