[ATmega8-s EVM] USB HID Keyboard 예제 작성
[AVR-USB 소프트웨어 스텍] 을 이용하여 USB키보드를 제작해 보았다.
ATmega8 보드에 USB를 연결하면 장치관리자에 "HID 키보드 장치"로 인식되는 것을 확인할 수 있다.
Keyboard 처리
KEY_DATA_REPORT m_KeyBuffer[NUM_KEYS + 1] =
{
{0, 0}, // no key pressed
{MOD_SHIFT_LEFT, KEY_1},
{MOD_SHIFT_LEFT, KEY_2},
};
void ProcessKeyboard(void)
{
if(!(ReadKey() & SW1_VALUE))
{
if(!m_SwFlag[0])
{
//Key Press
m_SwFlag[0] = 1;
Led1On();
SendUsbReport(&m_KeyBuffer[1], sizeof(KEY_DATA_REPORT));
}
}
else
{
if(m_SwFlag[0])
{
Led1Off();
SendUsbReport(&m_KeyBuffer[0], sizeof(KEY_DATA_REPORT));
m_SwFlag[0] = 0;
}
}
:
}
Atmeg8 USB Keyboard 예제 소스코드
//-----------------------------------------------------------------------------
int main(void)
{
Led1Init();Led2Init();
Led1Off();Led2On();
InitKeyboard();
usbInitFunction();
enable();
for(;;)
{
usbPoll();
ProcessKeyboard();
}
return 0;
}
//-----------------------------------------------------------------------------
int main(void)
{
Led1Init();Led2Init();
Led1Off();Led2On();
InitKeyboard();
usbInitFunction();
enable();
for(;;)
{
usbPoll();
ProcessKeyboard();
}
return 0;
}
//-----------------------------------------------------------------------------
반응형