#include <sys/file.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include "ad_converterinfo.h"
int main()
{
int iReadReturnValue;
int iIOCTLReturnValue;
int iDevFD;
unsigned char sBuffer[256];
unsigned int iAnalogValue = 0;
unsigned char i = 0;
unsigned short iMSB = 0;
unsigned short iLSB = 0;
if ((iDevFD = open("/dev/adc", O_RDWR)) == -1) {
perror("/dev/adc could not be opened\n");
return -1;
}
printf("The A/D-Converter device could be opened. :-)\n");
for (i = 0; i < 16; i++) {
iIOCTLReturnValue = ioctl(iDevFD, CMD_SET_DOUT, &i);
if (iIOCTLReturnValue < 0) {
perror("Error Calling IOCTL");
return -1;
} else {
printf("IOCTL returned <%i>\n", iIOCTLReturnValue);
}
usleep(1);
}
iIOCTLReturnValue = ioctl(iDevFD, CMD_INIT_AD1, 0);
if (iIOCTLReturnValue < 0) {
perror("Error Calling IOCTL");
return -1;
} else {
printf("IOCTL to enable AD-Conv. returned <%i>\n",
iIOCTLReturnValue);
}
while (1) {
iReadReturnValue = read(iDevFD, sBuffer, 2);
if (iReadReturnValue < 0) {
perror("Error Reading from Device!");
return -1;
} else {
iMSB = sBuffer[0];
iLSB = sBuffer[1];
iAnalogValue = iMSB;
iAnalogValue = iAnalogValue << 8;
iAnalogValue |= iLSB;
printf("<%d> = <%X>\n", iAnalogValue,
iAnalogValue);
}
usleep(10);
};
printf("Test finished. :)\n");
close(iDevFD);
return 0;
}