프로그램 돌아가는 꼴을 보면
main 함수의 무한루프에 usbtask 가 폴링되는 방식입니다.
그 중에 ProcessIO()가 있구요.
ProcessIO() 함수 안에 Joystick()함수가 있습니다.
Joystick()함수에서 조이스틱의 버튼 눌림을 검출하여
lastTransmission = HIDTxPacket(HID_EP, (BYTE*)&joystick_input, sizeof(joystick_input));
를 통해 호스트에 해당 패킷을 쏴줍니다.
데모보드는 버튼이 하나밖에 없습니다.
단순하게 Joystick()함수를 수정하면 추가적인 버튼 검출이 될 줄 알았습니다.
하지만 이런 방식으론 버튼 하나가 눌린 상태에선 다른 버튼을 검출하지 못하는 현상이 있었네요.
main에 Joystickbutton2() 이런 식으로 task를 추가함으로써 추가적인 버튼 검출이 가능할 것 같습니다.
퇴근하면 실험해봐야지 ㅎㅎㅎ
'(예전취미)전자회로 공부 > PIC18F46J50 FS USB PIN DEMO BOARD' 카테고리의 다른 글
부트로더로 넘어가기위해서 (0) | 2011.05.11 |
---|---|
I/O 포트를 이용한 usb 스위치 제어 (0) | 2011.05.10 |
PIC18F Peripheral Library Help Document - PIC18F46J50 (0) | 2011.03.27 |
Microchip code example (0) | 2011.01.24 |
햇 스위치, 아날로그스틱 (0) | 2011.01.16 |
USER GUIDE (0) | 2010.12.12 |