도와주세요!!
글 수 15,339
2008.05.24 10:45:27 (*.55.136.179)
8731
아래와 같이 터치 테스트 프로그램을 만들어서 터치를 연결하여 프로그램을 돌려보니,
아무 반응이 없습니다.
그래서, cat /proc/interrupts 하여 확인하여보면,
.[root@ez-x5 /root]$ cat /proc/interrupts
3: 0 GPIO 2-80
10: 0 LCD
13: 74 serial
18: 0 DMA
19: 2753 timer
44: 0 cs89x0
45: 0 mk712_touchscreen
Err: 0
라고 나옵니다.
mk712_touchscreen 의 인터럽트 요청 횟수가 올라 가지 않는데요
인터럽트가 안 걸리는 것 아닌가요?
어떻게 해결해야 하는지 알려 주시기 바랍니다.
물론 echo "1" > /dev/mk712
해도 디바이스 오픈시 메세지만 뜹니다
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h> // open/close
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
//typedef struct mk712_packet val;
struct mk712_packet
{
unsigned int header;
unsigned int x;
unsigned int y;
unsigned int reserved;
};
int main( void)
{
int touch_fd;
int i;
int nBytes;
char buf[16];
struct mk712_packet val;
val.header = 0;
val.x = 0;
val.y = 0;
val.reserved = 0;
printf("This is a touch test program\n");
if( 0 > (touch_fd = open("/dev/mk712", O_RDONLY))) return -1;
for(i=0;i<10;i++)
{
nBytes = read(touch_fd,buf,sizeof(struct mk712_packet));
memcpy(&val,buf,sizeof(struct mk712_packet));
printf("header = %d\nx = %d\ny=%d\nreserved=%d\n",val.header,val.x,val.y,val.reserved);
}
close(touch_fd);
return 0;
}
아무 반응이 없습니다.
그래서, cat /proc/interrupts 하여 확인하여보면,
.[root@ez-x5 /root]$ cat /proc/interrupts
3: 0 GPIO 2-80
10: 0 LCD
13: 74 serial
18: 0 DMA
19: 2753 timer
44: 0 cs89x0
45: 0 mk712_touchscreen
Err: 0
라고 나옵니다.
mk712_touchscreen 의 인터럽트 요청 횟수가 올라 가지 않는데요
인터럽트가 안 걸리는 것 아닌가요?
어떻게 해결해야 하는지 알려 주시기 바랍니다.
물론 echo "1" > /dev/mk712
해도 디바이스 오픈시 메세지만 뜹니다
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h> // open/close
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
//typedef struct mk712_packet val;
struct mk712_packet
{
unsigned int header;
unsigned int x;
unsigned int y;
unsigned int reserved;
};
int main( void)
{
int touch_fd;
int i;
int nBytes;
char buf[16];
struct mk712_packet val;
val.header = 0;
val.x = 0;
val.y = 0;
val.reserved = 0;
printf("This is a touch test program\n");
if( 0 > (touch_fd = open("/dev/mk712", O_RDONLY))) return -1;
for(i=0;i<10;i++)
{
nBytes = read(touch_fd,buf,sizeof(struct mk712_packet));
memcpy(&val,buf,sizeof(struct mk712_packet));
printf("header = %d\nx = %d\ny=%d\nreserved=%d\n",val.header,val.x,val.y,val.reserved);
}
close(touch_fd);
return 0;
}