ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
910473 Топик полностью
Boвa (15.03.2019 10:47 - 11:20, просмотров: 485) ответил Тигр на Половина порта PortB сконфигурирована на выход, половина на вход. Выведено значение в PortB. Есть желание из другой функции опросить PinB, чтоб понять уровни на входных пинах. Сразу после инструкции in Temp0,PinB - лапки порта PortB, находившиеся
Запретите прерывания, посмотрите не лезет ли у вас на выход сигнал из других блоков МК и приучите себя читать выведенное значение через регистр PORTB. Причины: 1) Когда вы читаете регистр PINB вы читаете то что реально идет наружу, и если вывод нагружен на емкость или резистор малого сопротивления вы можете прочитать значение 0 даже если выводите 1. Так что если вы хотите узнать что вы вывели читайте регистр PORTB, (возможно вставляя NOP или 2 NOP) между записью и чтением. 2) При выводе данных ваши данные могут не успеть добраться до вывода и вы читаете прошлое значение с порта, в таком случае вставка NOP между последовательными записью и чтением вам поможет. 3) У вас разрешены прерывания состояние порта могут измениться там 4) Если у вас работает разная периферия линии порта могут управляться ею, а регистр PINx может успешно читать реальное состояние линии, который не управляется регистром PORTx