1. Частоту 101.2МГц лучше хранить не как число 1012, а как 10120. Что одно, что другое - uint16_t, экономии никакой, зато есть возможность более тонкой подстройки.
2. Смысла особого заменять вычисление "даташитное" (freq * 100000 + 225000) / 8192 на ваш вариант с (freq * 12500 + 28125)/1024 из тех же соображений тоже никакого нет. Быстрее это не вычислится, меньше памяти не займёт, а вот запутать кого-то, кто будет пытаться понять этот код - вполне может.
Я как-то пытался сэкономить, стараясь не переходить к uint32_t в промежуточных вычислениях. Мне удавалось подобрать такие коэффициенты, что использовались в промежуточных результатах лишь uint16_t величины, с тем же результатом на выходе. Но потом забил, так как не так уж оно и экономит, особенно на ATmega.




