目的:利用研华 PCL 833 卡做定时中断。已交谈方式输入中断频率,敲击任一键(除了ESC)开时,每次中断 随中断次数 n 发出ln(n)*2000频率的声音,接着敲击任一键(除了ESC)暂停并且可以输入新的中断频率,按ESC键结束!
执行结果:程式已经不会 lag ,而且也可以顺利改变中断频率。但是却出现另一个 bug ,当我按任何键(除了ESC),想要暂停中断而改变中断频率,照理说扬声器应该不会发出声音,但是扬声器还是继续发出频率为A时的声音,当我把B频率输入后,扬声器才改变为B频率的声音。
应该是此处有 bug存在,但是我找不出来!
if ( kbhit() )
if ( getch() == 27 )
break;
else {
nosound();
n = 1;
count = 0;
printf( "Enter time base to change sampling period: ");
scanf( "%d", &timebase );
}
下面是我完整的编译码:
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <bios.h>
#include <math.h>
void interrupt (*old_handler)();
void interrupt int_di();
void init_INT();
unsigned int irql, base, ReadyFlag = 0;
..
访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容