Вы совсем не поняли идею прямого синтеза;-) Нет никаких буферов.
Есть таблица синусов, или косинусов, пофиг. Есть код частоты
который на каждом прерывании суммируется с содержимым аккумулятора
(16 бит), а оно при урезании младших разрядов является индексом
обращения к таблице. Частоту как угодно плавно менять можно:-)
Минимальный шаг перестройки частоты будет равен тактированию
аккумулятора деленному на 2 в отрицательной степени его
разрядности, там доли от 1 Гц точность можно получить на 1 бит кода частоты.