2011-09-04 7 views
1

현재 다음 설정이있는 프로젝트에서 작업 중입니다.C에서 영숫자 4x3 키패드로 코드 작성하는 방법

  1. AVR 마이크로 컨트롤러
  2. IDE - AVR 스튜디오
  3. 운영체제 - FreeRTOS 입력 용

난의 4x3의 키패드 매트릭스를 이용하고있다. 나는 이미 입력을 숫자로 취하기 위해 4x3 키패드를 코딩했다. 하지만 이제는 영숫자로 만들고 싶습니다. 우리가 휴대 전화 키패드에서 보는 것처럼.

예 - 키 2는 2, a, b, c에 대한 입력을받는 데 사용됩니다. 한 번 누름 키 2 번, 두 번 누를 때마다 2 번 키를 누른 다음 'a'를 얻고 삼중 누름 키 2를 누른 다음 'b'를 4 번 누름 키 2를 누른 다음 우연히 'd'를 얻습니다.

여러분 모두가 위의 의미를 이해하기를 바랍니다. 아무도 C에서 이러한 유형의 기능을 구현하기 위해 몇 가지 코드 아이디어를 줄 수 있습니까?

+1

사용자가 입력하기로 한 의견에 대한 사용자 의견을 제공 할 수있는 방법이 있습니까? – blueberryfields

+0

나는 이것을 구현하기를 원하며 이것을 할 수 있는지 물어보고 싶다. 어떻게 말해 줄 수 있니? –

답변

2

마지막 키 누름의 시스템 시간을 추적하고 다음 키 누를 때의 시스템 시간과 비교하면됩니다. 현재 키가 마지막 누름과 동일한 키이고 누름 사이의 시간이 작은 경우 (예 : 1 초 미만) 현재 입력 문자를 해당 키의 문자 목록에있는 다음 문자로 바꿉니다. 시간차가 1 초 이상이거나 다른 키를 누른 경우 현재 문자를 수락하고 키 목록의 첫 번째 문자부터 새 문자를 추가하십시오.

2

xxx 초 후에 2 (말하기)를 누른 다음 30 밀리 초 후에 2를 눌렀을 때 두 경우가 있는지 확인하면 문제가 발생합니다. case1> 누른 키가 새롭고 이전과 동일합니다 case2> 누른 키는 이전과 동일하며 xxx에서 계속 누를 때까지 계속됩니다.

관련 문제