void gpio_init()
{
- DDRB |= _BV(PB2) | _BV(PB4);
- PORTB &=~ (_BV(PB2) | _BV(PB4));
+ DDRB |= _BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6);
+ PORTB &=~ (_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
- gpio_set(GPIO_LED2, 1);
+ gpio_set(1, 1);
}
-void gpio_set(unsigned char n, unsigned char on)
+void susp_gpio()
{
- unsigned char bits = 0;
- switch(n) {
- case GPIO_LED1: bits = _BV(PB4); break;
- case GPIO_LED2: bits = _BV(PB2); break;
- }
+ DDRB &= ~(_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
+ PORTB &= ~(_BV(PB0) | _BV(PB2) | _BV(PB4) | _BV(PB6));
+}
+
+void gpio_before_poweroff()
+{
+ DDRB |= _BV(PB2);
+ PORTB |= _BV(PB2);
+}
+void gpio_set(unsigned char n, unsigned char on)
+{
if (on) {
- PORTB |= bits;
+ switch(n) {
+ case 0: PORTB |= _BV(PB0); break;
+ case 1: PORTB |= _BV(PB2); break;
+ case 2: PORTB |= _BV(PB4); break;
+ case 3: PORTB |= _BV(PB6); break;
+ }
} else {
- PORTB &= ~bits;
+ switch(n) {
+ case 0: PORTB &= ~_BV(PB0); break;
+ case 1: PORTB &= ~_BV(PB2); break;
+ case 2: PORTB &= ~_BV(PB4); break;
+ case 3: PORTB &= ~_BV(PB6); break;
+ }
}
}