📄 pm511fad.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include <errno.h>
void outport(int fd,long addr,long v){
long uldata[2];
uldata[0]=addr;uldata[1]=v;
write(fd,uldata,16);
}
long inport(int fd,long addr){
long uldata[2];
uldata[0]=addr;uldata[1]=0;
read(fd,uldata,16);
return uldata[1];
}
void outportb(int fd,long addr,long v){
long uldata[2];
uldata[0]=addr;uldata[1]=v;
write(fd,uldata,8);
}
long inportb(int fd,long addr){
long uldata[2];
uldata[0]=addr;uldata[1]=0;
read(fd,uldata,8);
return uldata[1];
}
char* dev={"/dev/zt_io-0"};
int main()
{
int fd;
int ch=0; /* 定义通道变量 */
long d=0,base; /* 定义过程变量 */
long i,j[10];
long max=0,min=0,ed;
base=0x100;
fd=open(dev,O_RDWR);
if(!fd){printf("open zt_io error!\n");return 0;}
outportb(fd,base+1,0);
outportb(fd,base,ch);
outport(fd,base+2,39);
outportb(fd,base+1,0x82);
while(1){
min=4095;max=0;
ed=0;
while(inport(fd,base+6)&2);
for(i=0;i<4096;i++){
d=(inport(fd,base+4)&0xfff); /* 读取转换结果,字操作*/
ed+=d;
min=(min>d)?d:min;
max=(max<d)?d:max;
}
ed=ed/4096.0;
printf("%5.4f,%4ld,%4ld,%4ld",ed*10.0/4095.0,max,min,max-min);
printf("%10x",base);
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -