Итак, ничего лучше не придумал, как считать все критичные моменты исключительно в цикле обработки прерывания таймера на 160 кГц. +/- 10 мкс погоды не делают - и затраты машинного времени уменьшились вдвое. Цикл обработки прерывания жрёт сейчас около 50% машинного времени.
Обновлено!Итак, частота ШИМ увеличена до 250 кГц, количество каналов измерения резольверов оставлено два, добавлена несколько корявая (пачками) генерация двух пар квадратурных импульсов, плюс генерация двух ноль-меток. Итоговые затраты 70-75% процессорного времени в среднем, в пике до 100% по осциллографу, но проц успевает. Из
К1986ВЕ92QI на С по быстродействию выжал практически всё. Дискретность снижена до 5000. При увеличении частоты ШИМ до 320 кГц процессор уже ничего не успевает! Много жрут времени ветвления - во-первых перезагрузка конвейера, во-вторых при нелинейной выборке команд появляются задержки чтения флеш-памяти МК.
Ассемблерные примеры пока или не собираются, или вешают ядро. Пока не совсем ясно как хотя бы простейший пример запустить.
Обновлено!По просьбе Миландра
тиснул статейку на Хабре.