阅读:850回复:2
这段程序有什么问题--请教
#include<stdio.h>
#include<stdlib.h> #include<conio.h> #include<dos.h> #include<bios.h> #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt ( *oldirq)(__CPPARGS); void interrupt newirq(__CPPARGS); int flag=0; int ad_result;/*定义A/D转换结果*/ void main() {int a; a=inportb(0x21); a=a&0x7f; outportb(0x21,a);/*开irq7中断*/ clrscr();/*清屏*/ oldirq = getvect(0X0F);/*取得中断入口地址*/ setvect(0X0F,newirq); outportb(0x283,0x10);/*初始化A/D0809*/ outportb(0x280,0x64);/*计数器直为100*/ } void interrupt newirq(__CPPARGS)/*中断程序*/ { int i;int b;FILE *fp; disable();//关中断 outportb(0x298,ad_result);//启动A/D while(i<=10) i=i++; ad_result=inportb(0x298);//读A/D转换结果 printf("%d",ad_result);//打印结果 while(bioskey(1)==0)//键盘有输入就跳出 { if ((fp=fopen("c:\\leiming","wb"))==NULL)//这个不用讲了吧 {printf("cant create file"); exit(1);//不能创建就跳出 } fwrite(&ad_result,1,1,fp);//把A/D结果写入文件 outportb (0x290,b);//启动D/A oldirq(); outportb(0x20,0x20);//置8259 ISR 相应位为1 } } |
|
沙发#
发布于:2004-09-06 13:35
你的main都run完了,到哪去找你的newirq?
|
|
板凳#
发布于:2004-09-13 11:24
那把newirq函数放在main()前面可以吗?
|
|