Может вы имели ввиду не мегагерцы а такты?
т.е программа выполняется за 36 тактов ( 4.5 такта на бит)
1 такт на бит не получить аппаратно мин прескалер равен 2 и получится 2 такта на бит
пограммно теоретически максимум можно получить тоже 2 такта на бит, но только для отправки и отправлять например константу т.е тупо 16 раз записать в порт (не используя SBI CBI)
примерно так
Код
LDI R16, 1; pin0 - CLK=1
LDI R17, 0; pin0 - CLK=0
OUT PORTA, R16; bit 7
OUT PORTA, R17
OUT PORTA, R16; bit 6
OUT PORTA, R17
; и т.д нужное число бит
но ценность этого кода сомнительна
можно так, но уже 3 такта на бит
Код
LDI R17, 0
LDI R16, 1 | ((val>>6) & 2); pin0 - CLK=1 pin1 - MOSI=bit 7
OUT PORTA, R16; bit 7
OUT PORTA, R17
LDI R16, 1 | ((val>>5) & 2); pin0 - CLK=1 pin1 - MOSI=bit 6
OUT PORTA, R16; bit 7
OUT PORTA, R17
; и т.д нужное число бит