Главное отличие между мной и вами - у меня эти 16 бит без проблем, очень быстро "задвигаются" в регистр простенькой (хотя и неплохо оптимизированной) подпрограммой на ассемблере. После чего переключаем один сигнал - вуаля, все сигналы на выходах регистра поменялись строго синхронно.
52 800 000 операций в секунду это 52Мгц, и это ещё не тактовые импульсы.даже если будете писать в машинных кодах получится ещё в несколько раз больше. а ещё надо чтобы программа какая-то работала, не только же тупо мотор крутить.вы попробуйте, я то уже попробовал и знаю о чём говорю. 10 оборотов в секунду на 24 шаговом моторе на 14.7 Мгц на Си это если все задержки выключить и выводить значение Ацп одним импульсом а не 9-ю.если перейти на 200 шаговый мотор надо чтобы это всё в 10 раз быстрее как минимум работало, а если с регистрами то в 100 раз быстрее.ассемблер не поможет.
Дешифратором чего, простите? Из какой в какую систему кодирования?
да, поймали, сморозил. недавно ваял на таком с индикаторами семисегментными - остался отпечаток. обычного 8-ми битного двоичного двунаправленного счётчика хватит.
но это всё мелочи. я допустил грубейшую системную ошибку в этом проекте, за которую драконы могут высмеивать меня как минимум неделю, но они её не заметили.но гений сын ошибок трудных. догадаетесь или нет? думаю наврядли...
Ну а что касается вашего мартышкиного труда - ни считать машинные циклы, ни тем более их оптимизировать (для чего в первую очередь требуется хорошее знание того же ассемблера) вы не умеете. Оптимизировать исходные условия задачи и сопоставлять их с аппаратными возможностями выбранного железа - тем более не умеете, и с таким подходом вряд ли научитесь.
всё что вы написали это как раз и есть мартышкин труд.гениальным ходом можно в сотни раз всё упростить и в результате убыстритть, а ассемблерными вставками и прочими выкрутасами в несколько раз максимум. я в этом уже несколько раз убедился на личном опыте. сейчас как раз похожий момент вертикального взлёта.