Instead of scanning the keyboard matrix from the main loop and utilizing busy loops, try to use a PIT interrupt handler to do the same thing, scanning one row per interrupt call without busy loops.
For some reason, this makes the movement of the mouse pointer very slow and makes it jump from time to time, so I ended up adding INTERRUPT_KEY_SCANNER and disabling the timer interrupt. Also double bufferred the mouse report just like the others. Unfortunately this does not affect this issue.
This commit is contained in:
@@ -31,8 +31,9 @@
|
||||
|
||||
// Variables:
|
||||
|
||||
extern bool IsUsbMouseReportSent;
|
||||
extern usb_device_class_struct_t UsbMouseClass;
|
||||
extern usb_mouse_report_t UsbMouseReport;
|
||||
extern usb_mouse_report_t* ActiveUsbMouseReport;
|
||||
|
||||
// Functions:
|
||||
|
||||
@@ -40,4 +41,7 @@
|
||||
usb_status_t UsbMouseSetConfiguration(class_handle_t handle, uint8_t configuration);
|
||||
usb_status_t UsbMouseSetInterface(class_handle_t handle, uint8_t interface, uint8_t alternateSetting);
|
||||
|
||||
void ResetActiveUsbMouseReport(void);
|
||||
void SwitchActiveUsbMouseReport(void);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user