Скважность будет плавать. Ведь прерывание не всегда случается сразу после сигнала. Прерывания могут быть временно запрещены, например. И в общем нет смысла тратить время CPU на то что может сделать модуль МК и даже лучше. 30кГц это довольно много. За всего лишь 533 такта и нужно дважды дернуть прерывание, на это уйдет 5 - 10% времени CPU. Жаль ostrov поленился сделать свой скетч. Меня вот больше интересует почему на осциллографе вместо прямоугольных импульсов получилась пила. Частота всего 30кГц. Неужели у него настолько плохая полоса пропускания? Если частоту импульсов уменьшать, то изображение становиться больше похоже на прямоугольные импульсы.
Ну делать функции обработки прерывания максимально быстрыми - это дело разработчика. Все функции обработки прерываний должны быть "ударил - убежал". Я всегда предпочитаю по прерываниям, потому что у меня, как правило, их надо много - например, управление 8 сервомашинками, или 8 шим светодиодами. А то, что бы назвали "джиттер" (меня употребление в этом контесте несколько смущает) - он для шим усреднится, у меня нет проблем даже с приемом софт уарта на каких-нибудь лихих скоростях. По треугольнику- нагрузите на 10 к, может у вас пины в input переходят?