ladan пишет:Побитовые И+ИЛИ быстрее чем сдвиги + сложение, оптимальнее, правильно понял? Или разница в 1 такт за счет отсутствия 1 операции?
Побитовые операции оптимальнее арифметических. К тому же они используются в соответствии с логикой алгоритма: выделить то что оставить и добавить то чего не хватает. Разница в 1 функциональный блок экономит машинное время сокращая длительность цикла выполнения диаграммы.
ladan пишет:вариант начала передачи через буфер - нормально?
UPD: Буфер использовать нет необходимости (зачем откладывать отправку на целый цикл выполнения диаграммы?) и это, в данном случае, даже неправильно. Актуальность данных в регистрах приема сообщения CAN гарантируется только при наличии "1" в регистре наличия нового сообщения, т.е. на данном цикле выполнения диаграммы. Если значения регистров принятого сообщения не сохраняются с помощью триггеров для дальнейшей обработки, а перегружаются в регистры отправки напрямую, то следует отправлять сообщение в этом же цикле.
Откорректированный вариант диаграммы во вложении.
Вложений в сообщении
test_c_1b.cfd 4.44 кб, скачивался 478 раз, последний раз 2017-11-21