{
unsigned char i;
- DDRB &= ~(_BV(PB4) | _BV(PB6));
- PORTB |= _BV(PB4) | _BV(PB6);
+ DDRA &= ~(_BV(PA3) | _BV(PA4));
+ PORTA |= _BV(PA3) | _BV(PA4);
for (i=0; i < N_BUTTONS; i++) {
button_start[i] = 0;
just_waked_up = 1;
- // log_byte(PORTB);
+ // log_byte(PORTA);
}
static void do_sleep()
hw_suspend();
gpio_before_poweroff(); // Set the status LED on again
- while((PINB & _BV(PB6)) == 0)
+ while((PINA & _BV(PA3)) == 0)
; // wait for button release
_delay_ms(100);
void timer_check_buttons()
{
- unsigned char pinb = PINB;
+ unsigned char pin = PINA;
unsigned char i;
unsigned char port_states[N_BUTTONS] = {
- pinb & _BV(PB6),
- pinb & _BV(PB4),
+ pin & _BV(PA3),
+ pin & _BV(PA4),
};
for (i = 0; i < N_BUTTONS; i++) {
void gpio_init()
{
- DDRB |= _BV(PB0) | _BV(PB2); // LED4, LED5
- PORTB &=~ (_BV(PB0) | _BV(PB2));
-
- DDRA |= _BV(PA3) | _BV(PA4); // LED6, LED7
- PORTA &=~ (_BV(PA3) | _BV(PA4));
+ DDRB |= _BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6);
+ PORTB &=~ (_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
gpio_set(1, 1);
}
void susp_gpio()
{
- DDRB &= ~(_BV(PB0) | _BV(PB2)); // LED4, LED5
- PORTB &=~ (_BV(PB0) | _BV(PB2));
-
- DDRA &= ~(_BV(PA3) | _BV(PA4)); // LED6, LED7
- PORTA &=~ (_BV(PA3) | _BV(PA4));
+ DDRB &= ~(_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
+ PORTB &= ~(_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
}
void gpio_before_poweroff()
{
- DDRA |= _BV(PA4);
- PORTA |= _BV(PA4);
+ DDRB |= _BV(PB2);
+ PORTB |= _BV(PB2);
}
void gpio_set(unsigned char n, unsigned char on)
switch(n) {
case 0: PORTB |= _BV(PB0); break;
case 1: PORTB |= _BV(PB2); break;
- case 2: PORTA |= _BV(PA3); break;
- case 3: PORTA |= _BV(PA4); break;
+ case 2: PORTB |= _BV(PB4); break;
+ case 3: PORTB |= _BV(PB6); break;
}
} else {
switch(n) {
case 0: PORTB &= ~_BV(PB0); break;
case 1: PORTB &= ~_BV(PB2); break;
- case 2: PORTA &= ~_BV(PA3); break;
- case 3: PORTA &= ~_BV(PA4); break;
+ case 2: PORTB &= ~_BV(PB4); break;
+ case 3: PORTB &= ~_BV(PB6); break;
}
}
}