기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요
mango64라는 s3c6410기반 보드를 활용하고 있습니다
qt를 올려보고 디바이스 드라이버를 이용해 led 제어까지 qt로 구현해봤습니다.
반대로 keypad를 이용하여 qt를 제어해보고 싶은데
어떤식으로 해야할지 감이 안오네요.
일단 c로 커널에 포함된 keypad device driver를 이용하여
어떤 버튼을 눌렀는지 감지만 할 수 있다면 qt에서도 적용할 수 있을거 같은데.
문제는 polling방식 감지가 아니라 interrupt 방식으로 구현이 가능할까요?
감이 안와서 커널에 포함된 keypad device driver를 보고잇는데..
일단 키패드는 GPIO에 붙어있습니다.
인터럽트 핀과 연결이 안되어 있다보니
커널층에서 타이머같은걸로계속 키를 읽어보는 polling방식으로 구현이 된거같은데...
어떤식으로 활용해야할지 모르겠고..
디바이스 드라이버를 계속 따라가다보니
static void input_pass_event(struct input_dev *dev,unsigned int type, unsigned int code, int value)
{
struct input_handle *handle;
rcu_read_lock();
handle = rcu_dereference(dev->grab);
if (handle)
handle->handler->event(handle, type, code, value);
else
list_for_each_entry_rcu(handle, &dev->h_list, d_node)
if (handle->open)
handle->handler->event(handle,
type, code, value);
rcu_read_unlock();
}
까지 왔습니다 하지만 event(handle, type, code, value) 함수를 못찾고 헤매고 있네요.
결국 event(handle, type, code, value)를 감지할수있는? 함수를 구현하면 될거같긴한데
모르겠네요.
질문이 커진거 같은데.
도와주세요 ㅎ
http://www.aesop.or.kr/36077
문서의 71 page를 보시면 관련 부분에 대한 예제가 있습니다.
예전 예제라 커널 버전에 따라 좀 틀리겠지만, 2.6.30 이전에는 큰 문제없이 적용됩니다.
그럼...