پاسخ : کار با پورت USB میکرو های سری AT90USB
این هم کل برنامم
فایلهای دیگه رو دستکاری نکردم همونا هستند
ولی من تعداد شرط ها رو کمتر کردم دیدم اون خطا رفت
یا همون قسمتی که دستور شرطی رو گذاشتم اگر حذفش کنم خطا دیگه نمیده :angry:
نوشته اصلی توسط mojtaba_led
کد:
#include "profix.h" /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ int main(void) { SetupHardware(); puts_P(PSTR(ESC_FG_CYAN "Keyboard Host Demo running.\r\n" ESC_FG_WHITE)); LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); GlobalInterruptEnable(); for (;;) { KeyboardHost_Task(); HID_Host_USBTask(&Keyboard_HID_Interface); USB_USBTask(); } } /** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { #if (ARCH == ARCH_AVR8) /* Disable watchdog if enabled by bootloader/fuses */ MCUSR &= ~(1 << WDRF); wdt_disable(); /* Disable clock division */ clock_prescale_set(clock_div_1); #endif /* Hardware Initialization */ Serial_Init(9600, false); LEDs_Init(); USB_Init(); /* Create a stdio stream for the serial port for stdin and stdout */ Serial_CreateStream(NULL); } /** Task to manage an enumerated USB keyboard once connected, to display key state * data as it is received. */ void KeyboardHost_Task(void) { uint8_t Key; if (USB_HostState != HOST_STATE_Configured) return; if (HID_Host_IsReportReceived(&Keyboard_HID_Interface)) { USB_KeyboardReport_Data_t KeyboardReport; HID_Host_ReceiveReport(&Keyboard_HID_Interface, &KeyboardReport); LEDs_ChangeLEDs(LEDS_LED1, (KeyboardReport.Modifier) ? LEDS_LED1 : 0); Key = KeyboardReport.KeyCode[0]; if (Key) { if (key >= HID_KEYBOARD_SC_KEYPAD_1_AND_END && key <= HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP) { if (key == HID_KEYBOARD_SC_KEYPAD_1_AND_END)putchar('1'); else if(key == HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW)putchar('2'); else if(key == HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN)putchar('3'); else if(key == HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW)putchar('4'); else if(key == HID_KEYBOARD_SC_KEYPAD_5)putchar('5'); else if(key == HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW)putchar('6'); else if(key == HID_KEYBOARD_SC_KEYPAD_7_AND_HOME)putchar('7'); else if(key == HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW)putchar('8'); else if(key == HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP)putchar('9'); } else if(key == HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT)putchar('0'); else if(key == HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE)putchar('.'); else if(key == HID_KEYBOARD_SC_KEYPAD_SLASH)putchar('/'); else if(key == HID_KEYBOARD_SC_KEYPAD_ASTERISK)putchar('*'); else if(key == HID_KEYBOARD_SC_KEYPAD_MINUS)putchar('-'); else if(key == HID_KEYBOARD_SC_KEYPAD_PLUS)putchar('+'); else if(key == HID_KEYBOARD_SC_KEYPAD_ENTER)putchar('E'); else if(key == HID_KEYBOARD_SC_BACKSPACE)putchar('B'); else if(key == HID_KEYBOARD_SC_NUM_LOCK)putchar('N'); putchar(0x0A); putchar(0x0D); } } }
فایلهای دیگه رو دستکاری نکردم همونا هستند
ولی من تعداد شرط ها رو کمتر کردم دیدم اون خطا رفت
یا همون قسمتی که دستور شرطی رو گذاشتم اگر حذفش کنم خطا دیگه نمیده :angry:
دیدگاه