广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2456 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.041912 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言