basilmak (20.09.2014 16:45 - 16:48, просмотров: 153) ответил aha на на самом деле у меня 4 двигателя, я подумал может оставить на один пик два двигателя. И кроме подсчета, у меня в прерывании еще происходит сравнение в заданным числом,чтобы тормознуть двигатель по достижению необх. количества. Макс. время 25 мкс
100% уверен что у Микрочипа в документации к этому семейству описано как правильно обрабатывать прерывания по изменению на входах порта, там никакой высшей математики быть не может - скорее всего прерывание будет при отличии контролируемых бит от состояния, когда прерывание стало разрешено (допускаю, что какойнить и ритуальный танец типа считать этот порт перед разрешением нужно сделать). И когда прерывание наступило второе то оно не наступит если до окончания обработки бит(ы) изменятся. Я бы тупо по прерыванию от таймера считывал порт с частотой обеспечивающей обязятельное попадание на сигнал датчка - сравнивал с прошлым значением по XOR и делал +1 счетчикам соответствующим, потому как по изменению "не прозрачно" - а так прозрачно. На счет XOR конечно упростил, по _- или -_ делал бы с фильтрацией дребезга, т.е. по нескольким отсчетам состояния порта