2014-07-23 6 views
2

문제가 있습니다. usart가 내 컴퓨터의 키를 눌러 ATMEGA 1280의 PWM을 제어해야합니다. 나는 ascii 키를 사용하고 PWM을 제어하는 ​​것을 제어 할 수있다. 그러나 문제는 화살표 키를 사용하려고하고 있다는 것입니다. 화살표 키에는 ascii 값이 없으므로 현재 atmega 1280을 사용할 수 없습니다. 화살표 키에서받은 값과 비교할 때 어떤 값인지 알 수 없습니다. 누군가 아이디어가 있니? 미리 친구들에게 감사드립니다!.ATMEGA USART 화살표 키 처리

답변

2

커서 키는 표준 ASCII 문자 세트의 일부가 아닌, 그래서 그들이 UART를 통해 전송하는 문자를 생성하지 않습니다 ...

확장 키는 자신의 스캔 코드를 통해 읽을 수 있습니다 (구글 " PC 스캔 코드 ") 터미널 프로그램이 비 ASCII 문자에 대한 스캔 코드를 전송하는 것은 운이 좋을 수도 있지만 2 바이트 시퀀스이므로 가져 오는 경우 무시할 수 있습니다.

+0

좋아요, 찾았습니다. 도움이 될 것 같아요. 내일은 그것을 시도해보고 값을 인쇄하려고 노력합니다. 단지 사용하려고합니다. 작동하는 경우 대답을 작동 한 것으로 표시합니다. 고마워 친구! ("~ –

4

퍼티 또는 다른 터미널 에뮬레이션 소프트웨어와 같은 터미널 에뮬레이터를 사용해야합니다. 핸들 화살표 키가 필요한 경우 control escape sequences을 사용하십시오.

UP 화살표 키를 처리해야하고 UP 키를 누른 후에 UART ASCII 시퀀스 ("ESC 1 A")로 전송됩니다. ESC는 ASCII로 0x1B입니다. 다른 문자는 일반 ASCII 문자입니다. 내가 제공 한 다른 시퀀스를 페이지에서 찾을 수 있습니다. 시퀀스를 구문 분석해야하며 모든 키를 가져옵니다.