字符设备驱动之ADC数模转换
模数转换
模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号变为离散的数学信号的器件
此实验所用的AD寄存器最大值为0xFFF,最小值为0;滑动变阻器的电阻最大值为10K
ADC转换使用实例:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main()
{
int fd,res = 0;
char *adc_file = "/dev/adc";
char buf[10];
memset(buf,0,sizeof(buf));
fd = open(adc_file,O_RDONLY);
if(fd < 0)
printf("open failed\n");
else
{
if(read(fd,buf,10) < 0)
printf("Can't open the file\n");
else
{
res = (int)(atoi(buf) * 10000/4095);
printf("%d\n",res);
}
}
return 0;
}
将程序交叉编译之后拷贝到开发板执行,转换蓝色的滑动变阻器之后再运行程序,即可观察到数据的变化
示例程序中,函数memset函数的作用是将字符串清空