目的:利用研華 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 可以看到全部內容