Никаких проблем сделать себе для УСАРТА и таймеров такую библиотеку. Скорость легко макросами задавать, по значению кварца... Если в результате ошибка в % больше заданной - пусть выводит типа #error. У меня есть но только для ИАРа, от позволяет в #define плавающую точку использовать. Когда ошибка большая - то выдает при компиляции division by zero. Но сами макросы длиннее чем отведено места под пост мне, серому.