Datasheet
20 | Page
oldd = PORTD;
PORTB = 0xFF;
PORTD = 0xFF;
delay_ms(1);
PORTB = oldb;
PORTD = oldd;
d--;
}
else
{ if ((PINC & 0b00000100)==0)
d--;
else
delay_ms(1);
} // if button pressed
} // if button pressed
} // delay
int main(void)
{ // int b;
// Set all LED connections to output
DDRB = 0b00100110;
DDRD = 0b01101000;
PORTB = 0x00;
PORTD = 0x00;
// Set button (port C) to input
DDRC = 0b00000000;
// pull-up on C2 & C3:
PORTC = 0b00001100;
while(1)
{ // convoluted but simple walk the leds
output_high(PORTB,5);
delay();
output_low (PORTB,5);
output_high(PORTB,1);
delay();
output_low (PORTB,1);
output_high(PORTB,2);
delay();
output_low (PORTB,2);
output_high(PORTD,3);
delay();
output_low (PORTD,3);
output_high(PORTD,5);
delay();
output_low (PORTD,5);
output_high(PORTD,6);
delay();
output_low (PORTD,6);
output_high(PORTD,5);
delay();
output_low (PORTD,5);
output_high(PORTD,3);
delay();
output_low (PORTD,3);
output_high(PORTB,2);