char volatile one [ ] ="00000000.00000000.00000000";
inline void T0H(int n) {
asm volatile(
".rept %[3] \n\t"
"nop \n\t"
".endr \n\t"
:
:[ncycles] "I" (n) 
);
}
inline void T1H(int n) {
asm volatile(
".rept %[9] \n\t"
"nop \n\t"
".endr \n\t"
:
:[ncycles] "I" (n) 
);
}
inline void TLD(int n) {
asm volatile(
".rept %[7] \n\t"
"nop \n\t"
".endr \n\t"
:
:[ncycles] "I" (n) 
);
}
inline void TLL(int n) {
asm volatile(
".rept %[96] \n\t"
"nop \n\t"
".endr \n\t"
:
:[ncycles] "I" (n) 
);
}
void setup() 
{
DDRD = B00010000;
for(int i = 0;i < 4;i++)
{
for(int i = 0; i < 27; i++)
{
if(one[i] == '1')
{
PORTD = B00010000;
T1H();
PORTD = B00000000;
TLD();
}
if(one[i] == '0')
{
PORTD = B00010000;
T0H();
PORTD = B00000000;
TLD();
}
}
TLL();
}
}
void loop() {
  // put your main code here, to run repeatedly:
}