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