-
- Если не менять контроллер на что-то более вменяемое, то можно сделать просто одно прерывание по таймеру, в котором софтово опрашивать датчики. Частота прерываний должна быть достаточной, чтобы не пропустить срабатывание датчика. - mr-x(22.09.2014 14:50)
- А зачем делать это через жопу и посредством старого, как гавно мамонта ПИКа, когда можно взять любой современный ПИК24 и считать периоды 32-битным таймером при помощи модулей захвата, забыв навсегда о пропусках, переполнениях и прочих "прелестях" MBedder(16 знак., 21.09.2014 10:49)
- ЭЭЭЭ, а разве не у всех пиков есть таймер-счётчик с внешним входом? - Крок(22.09.2014 21:35)
- прерываний д.б. два. в каждом только unsigned long счетчик LordN(34 знак., 20.09.2014 15:31)
- это я понимаю , минимум операции в обработке д.б. Симулятор MPLAb показывает, если возникнут новые пару прерывании, во время обработки текущей, то они пропадают ... - aha(20.09.2014 15:47)
- прерывание подымает флаг, а сброс этого флага ты делаешь в прерывании. пока флаг не сброшен - событие не теряется. LordN(83 знак., 20.09.2014 16:12)
- на самом деле у меня 4 двигателя, я подумал может оставить на один пик два двигателя. И кроме подсчета, у меня в прерывании еще происходит сравнение в заданным числом,чтобы тормознуть двигатель по достижению необх. количества. Макс. время 25 мкс aha(911 знак., 20.09.2014 16:25 - 16:30)
- разглядел что ты пытаешься асинхронные события обрабатывать в одном прерывании. так в любом случае пропуски будут. если задача обеспечить их отсутствие - нужны асинхронные прерывания. типа по rb4-7 и по int - LordN(20.09.2014 16:51)
- 100% уверен что у Микрочипа в документации к этому семейству описано как правильно обрабатывать прерывания по изменению на входах порта, там никакой высшей математики быть не может - скорее всего прерывание будет при отличии контролируемых бит от basilmak(618 знак., 20.09.2014 16:45 - 16:48)
- асм, это не ко мне... - LordN(20.09.2014 16:33)
- на самом деле у меня 4 двигателя, я подумал может оставить на один пик два двигателя. И кроме подсчета, у меня в прерывании еще происходит сравнение в заданным числом,чтобы тормознуть двигатель по достижению необх. количества. Макс. время 25 мкс aha(911 знак., 20.09.2014 16:25 - 16:30)
- прерывание подымает флаг, а сброс этого флага ты делаешь в прерывании. пока флаг не сброшен - событие не теряется. LordN(83 знак., 20.09.2014 16:12)
- это я понимаю , минимум операции в обработке д.б. Симулятор MPLAb показывает, если возникнут новые пару прерывании, во время обработки текущей, то они пропадают ... - aha(20.09.2014 15:47)