Написал два варианта использования SPI. С прерываниями и без. Обработчик прерывания получился объемный. Так что плюнул, сделал без прерываний. Эту макетку спаял еще летом. Но использовал только проц и выходные регистры с верхними и нижними ключами. Входные только припаяны были, не подключены. Недавно занялся, полностью спаял схему. 3 входных регистра, 3 выходных. Куда их все использовать, пока еще не придумал, так что использую по 2 регистра. Для ознакомления.
Работает следующим образом. У меня 6 индикаторв, так что не стал мудрить, привязался к системному тику 1 мс. Устранение дребезга осуществляется чтением из приемного буфера SPI раз в 20 мс и последующим сравнением текущего и предыдущего состояний портов.