[an error occurred while processing this directive]
|
почти сразу как узнал что есть прерывания усвоил что все надо делать в них без задержек.
Для начало вопросы:
1) что за сигналы заведены на МК, ТТЛ или с механических датчиков с наличием дребезга ?
2) зачем счет останавливать по прерыванию если можно в основном цикле читая таймер ? что то еще колдуете ?
3) код смотреть лень, потому вопрос, как вы обрабатываете прерывание по порту B ? Когда я хотел узнать что там изменилось то всегда запоминал предыдущее состояние битов, потом XORил с текущим и получат состояни = 1 там где произошли изменения, а затем проверял условие: бит изменился и бит ==1 тогда счетчик +1, иначе далее, и так по каждому биту. Не удивительно что у вас по любому перепаду на порту счетчики растут везде где на входах 1. :-)))
E-mail: info@telesys.ru