fifo.c
来自「rt 7520采集卡 linux驱动源代码」· C语言 代码 · 共 104 行
C
104 行
/* FILE NAME: fifo.c FILE DESCRIPTION: Demonstrates how to use software triggering to start an A/D conversion. PROJECT NAME: Linux DM7520 Driver, Library, and Example Programs PROJECT VERSION: (Defined in README.TXT) Copyright 2004 RTD Embedded Technologies, Inc. All Rights Reserved.*/#include <stdio.h> //printf#include <stdlib.h> //exit#include <errno.h> //errno#include "dm7520_library.h"int main(int argc, char * argv[]){ FILE * infile; int devno; int samples_read; uint16_t fifostat; short sample; int channel; int i = 0; cg_entry_t cgl; uint16_t *z=(uint16_t*)&cgl; uint8_t bus_master; uint8_t fifo_full; uint8_t fifo_empty; if (argc<2) {fprintf(stderr,"Usage: %s <device> [channel]\n",argv[0]);exit(1);} if (NULL==(infile=fopen(argv[1],"r"))) { fprintf(stderr,"Cannot open file, errno=%d\n",errno); perror("Error is"); exit(2); } if (argc==3) { channel=atoi(argv[2])-1; } else channel=0; if (channel<0 || channel>15) { fprintf(stderr,"%s: Channel number not in valid range (1..16).\n",argv[0]); exit(1); } devno = fileno(infile); IsBusMaster7520(devno, &bus_master); if (bus_master) printf("Busmaster card\n"); else printf("Non-busmaster card\n"); InitBoard7520(devno); ClearADFifo7520(devno); samples_read = 0; GetFifoStatus7520(devno, &fifostat); printf("\nFIFO status: %04X.\n",fifostat); EnableCGT7520(devno,0); SetupCgtRow7520(&cgl,channel,0,0,0,0,0,0,0,0); WriteCGTLatch7520(devno,(uint16_t)*z); IsADFifoFull7520(devno, &fifo_full); while (!fifo_full) { StartConversion7520(devno); samples_read++; IsADFifoFull7520(devno, &fifo_full); } IsADFifoEmpty7520(devno, &fifo_empty); while(fifo_empty == 0) { ReadADData7520(devno, &sample); printf("%-5d ",sample); i++; if (0==(i+1)%8) printf("\n"); IsADFifoEmpty7520(devno, &fifo_empty); } printf("\nTotal FIFO size = %d\n", samples_read); GetFifoStatus7520(devno, &fifostat); printf("\nFIFO status: %04X.\n",fifostat); fclose(infile); return(0);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?