Кажется я понял в чем была проблема. Я опускал часы и поднимал их практически так же как и опускал и поднимал данные, т.е. мышь просто не успевала зафиксировать старт бит. На счет spi. Да я знаю, что это такое и знаю как это работает в теории. На практике я еще его ни разу не применял. Но дело в том, что пока я использую мышь как устройство в целом мне он в принципе не пригодится т.к. я понял, что в этом случае мне будет легче все реализовать программно не прибегая ни к usart ни к spi. Причина моего выбора кроется в том, что ни один из этих интерфейсов нельзя применить без дополнительного допиливания их руками, а так как я новичок в данной теме я не знаю всех тонкостей настройки и работы с этими интерфейсами в мк. Проще говоря для меня пока usart и spi, как черный ящик - я знаю, что он должен выдать, но не знаю как он работает. Поэтому если он не работает, то я начинаю гадать, а гадать мне не нравиться. Программная реализация же мне позволяет понять все тонкости протокола мыши и научиться делать кое-что программно. Да и если что не получается можно что-то изменить (отладить), посмотреть как ведет себя мк, сделать определенные выводы и идти дальше. И это большое преимущество для меня по сравнению с аппаратной реализацией данного протокола.
|