廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 2457 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
aniegg
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x26
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++] [問題]外部定時中斷
目的:利用研華 PCL 833 卡做定時中斷。已交談方式輸入中斷頻率,敲擊任一鍵(除了ESC)開時,每次中斷 隨中斷次數 n 發出ln(n)*2000頻率的聲音,接著敲擊任一鍵(除了ESC)暫停並且可以輸入新的中斷頻率,按ESC鍵結束!

執行結果:程式似乎有bug存在,無法立即產生中斷而發出聲音!結束程式時,也會慢10秒!

程式部分:我是用turbo c 編譯的。
#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;
int irqnum = 0, n = 0, count = 0;
int keyin, timebase;
int int_mask;
float y;

void interrupt int_di()
{
disable();
irqnum = inportb( base+15 );
count++;
n++;
y=n;
sound(log(y)*2000);
delay(1000);
nosound();

outportb( base+12, 0x20 );

ou ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




颯風沾、問途寒,誰與共飲,誰敢擋關?
燕戟歸命人不還。
獻花 x0 回到頂端 [樓 主] From:台灣 | Posted:2005-10-12 23:23 |
kevinliao 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x17
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

雖然對你這個 PCL 833 不是很了, 但是在 interrupt handler 中呼叫 delay 一看就是很奇怪的動作, 為什麼要這麼做呢?


獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2005-10-13 12:38 |
aniegg
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x26
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

delay 指令是為了聽到 pc 楊聲器發出的聲音


颯風沾、問途寒,誰與共飲,誰敢擋關?
燕戟歸命人不還。
獻花 x0 回到頂端 [2 樓] From:台灣教育部 | Posted:2005-10-13 13:07 |
kevinliao 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x17
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

你所說的 "結束程式時,也會慢10秒" 是指程式結束後系統時間會無緣無故慢 10 秒嗎? 如果是的話那你試試不要 delay (先不管聽不聽的到的問題), 看看結果如何?


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2005-10-13 13:11 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.011848 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言