⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm511fad.c

📁 pc104接口在arm9200开发板上的驱动程序
💻 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 + -