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