📄 fifo.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -