📄 pm511adi.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=0;
unsigned long max=0,min=0,ed;
unsigned short td[409600];
base=0x100;
fd=open(dev,O_RDWR);
if(!fd){printf("open zt_io error!\n");return 0;}
outport(fd,1000,1);
outportb(fd,base+1,0);
outportb(fd,base,ch);
outport(fd,base+2,39);
outportb(fd,base+1,0xc2);
while(1){
int retv;
min=4095;max=0;
ed=0;
if((retv=read(fd,td,409600*2))<0)printf("read 8192 false!%ld\n",retv);
for(i=0;i<retv;i++){
int a=td[i]&0xfff;
ed+=a;
max=a<max?max:a;
min=a>min?min:a;
// printf("%x\n",td[i]);
}
if(retv>0){
ed/=retv;
printf("%6x,%6x,%6x,%6x,%7ld,%5x\n",ed,(max-min),max,min,retv,j++);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -