로그인 유지
S5PV210 보드로 ADC값을 읽고자 합니다.
예제소스나 참고할 만한 자료가 있을런지요?
대충 알아보니 기본적으로 포함된 ADC드라이버가 있는듯 한데.. 어찌 다뤄야 할지 감이 안옵니다.
cat /dev/adc
하면은 화면에 이상한 문자들이 찍히면 ADC가 정상동작하고 있는것으로 아래와 같이 사용하시면 됩니다.
ADCPort 는 ADC 채널을 지정하며 0,1,2,3... 과 같이 사용하고자 하는 채널을 넣어줍니다.
/dev/adc 가 없으면 커널을 옵션설정한후에 다시 컴파일하고 설치하여야 합니다.
저같은경우에는 커널이 다운되서 커널을 일부 수정해서 사용하고 있습니다.
/커널/arch/arm/mach-s5pv210/adc.c 를 수정하면 됩니다.
int ADC(int ADCPort) { #define ADC_INPUT_PIN _IOW('S',0x0c,unsigned long) int a; int fd = open("/dev/adc",O_RDWR); if(fd < 0){return(ret);} if (ioctl(fd,ADC_INPUT_PIN,ADCPort)){close(fd);return(-1);} read(fd,&a,sizeof(int)); close(fd); return(a); }
답변 감사드립니다.
한번 테스트 해보겠습니다 ^^
cat /dev/adc
하면은 화면에 이상한 문자들이 찍히면 ADC가 정상동작하고 있는것으로 아래와 같이 사용하시면 됩니다.
ADCPort 는 ADC 채널을 지정하며 0,1,2,3... 과 같이 사용하고자 하는 채널을 넣어줍니다.
/dev/adc 가 없으면 커널을 옵션설정한후에 다시 컴파일하고 설치하여야 합니다.
저같은경우에는 커널이 다운되서 커널을 일부 수정해서 사용하고 있습니다.
/커널/arch/arm/mach-s5pv210/adc.c 를 수정하면 됩니다.
int ADC(int ADCPort)
{
#define ADC_INPUT_PIN _IOW('S',0x0c,unsigned long)
int a;
int fd = open("/dev/adc",O_RDWR);
if(fd < 0){return(ret);}
if (ioctl(fd,ADC_INPUT_PIN,ADCPort)){close(fd);return(-1);}
read(fd,&a,sizeof(int));
close(fd);
return(a);
}