[an error occurred while processing this directive]
|
Для PIC18F458 задача такая:
Нужно прервать передачу сообщения, которое в силу ряда причин еще не было передано в шину, но уже потеряло актуальность.
Отмена сообщения делается вроде просто, установил TXREQ в ноль и жди TXABT, в случае если передача уже шла.
Проблема:
Если между чтением бита TXREQ(который находиться в единице) и опрерацией по установке этого бита в ноль(отмена передачи) CAN контроллер пика уже сам сбросил этот бит, как тогда узнать что буфер точно свободен, ведь TXABAT уже не встанет в 1.
В доке не описано в каком машинном цикле этот бит установиться в ноль.
То есть потенциально даже так может не работать:
SkipIFSet TXREQ
GoTo BlaBla
BitClear TXREQ
Wait TXABAT
Или я не прав?
E-mail: info@telesys.ru