думаю, что индексный доступ здесь всё-таки маленькое, но зло. оправданно, если элементы Вы храните только в этом буфере и жонглируете индексами.
задачу, правда, понял лишь поверхностно. в обработчиках ноги дергаю софтовым "функциональным генратором" - ему обработчики не нужны - он сам такой - ему нужен аж такт, ну а остальное - ХЗ, кроме махнуть каким нибудь выключением RS485 при недоделанном UART-е...