uadc.c

来自「《并行口编程指南》」· C语言 代码 · 共 73 行

C
73
字号
/* uadc.c */
/* compile with: gcc -c uadc.c */

#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>

#define DEVICE_OPEN 0
#define DEVICE_CLOSE 1
#define DEVICE_READ 2

char * FILES[8]={"/dev/adc0",
                  "/dev/adc1",
                   "/dev/adc2",
                    "/dev/adc3",
                     "/dev/adc4",
                      "/dev/adc5",
                       "/dev/adc6",
                        "/dev/adc7" };



#define CHANNEL_0   0
#define CHANNEL_1   1
#define CHANNEL_2   2
#define CHANNEL_3   3
#define CHANNEL_4   4
#define CHANNEL_5   5
#define CHANNEL_6   6
#define CHANNEL_7   7

int adc(int,int);

adc(channel_number,init)
{
char * filename;
int data_point,count=2;
static int fd;
unsigned char buf[3];


filename=FILES[channel_number];
switch(init) 
{
case DEVICE_OPEN:
   filename=FILES[channel_number];
   printf("File is %s\n",filename);
   fd=open(filename,O_RDONLY);
   if (fd<0)
     {
     printf("Could not open device\n");
     return -4;
     }
     else
     {
     printf("ADC Channel %d opened\n",channel_number);
     return 1;
     }
     break;
case DEVICE_CLOSE:
     printf("Closing  Device\n");
     close(fd);
     return 1;
     break;
case DEVICE_READ:
     read(fd,buf,count);
     data_point=((int)buf[1]*256+(int)buf[0]);
     return data_point;
     break;
 }
}
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?