В настоящее время я читаю значения от мыши PS/2, которая работает отлично! - Я пытаюсь читать только с мыши, когда мышь посылает сигнал синхронизации (задний фронт), поэтому я пытаюсь использовать прерывание. Это часть моего кода до сих пор: обработчикпрерывание с использованием PSoC 4
прерывания:
extern struct mouse mouseData;
CY_ISR(PS2_interrupt) {
ISR_getMouseData(&mouseData);
}
Это прерывание дает мне follwing результат, который идеально подходит:
Я движущуюся мышь вправо, и это выводит правильную вещь, но я не могу ничего сделать в основном для цикла. Если я, например, печатаю что-то на дисплее в основном цикле, ничего не происходит, но он все равно может читать данные с мыши, всякий раз, когда мышь посылает.
Я узнал, что вы должны очистить прерывание, используя эту функцию :
isr_PS2_clock_ClearPending()
Когда я пишу эту функцию в обработчике прерывания я буду получать это:
Это то же самое движение в перед, но как вы можете видеть, данные я испорченный. Однако я могу выполнять вещи в основном цикле, когда intterrupt не вызывается.
Что я делаю неправильно с точки зрения обработки прерываний?
Ну я имел такую же проблему раньше, и что работало для меня –