Commit fa1f7d30 authored by Jan Kasprzak's avatar Jan Kasprzak
Browse files

buttons.c: button on PB0, status LED on PB1

parent 50ca2660
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -16,17 +16,17 @@ static unsigned char prev_state;
void status_led_on_off(unsigned char mode)
{
	if (mode)
		PORTB |= _BV(PORTB0);
		PORTB |= _BV(PORTB1);
	else
		PORTB &= ~_BV(PORTB0);
		PORTB &= ~_BV(PORTB1);
}

void init_buttons()
{
	DDRB &= ~_BV(DDB1);
	DDRB |= _BV(DDB0);
	PORTB |= _BV(PORTB1); // enable internal pull-up
	PORTB &= ~_BV(PORTB0); // status led off
	DDRB &= ~_BV(DDB0);
	DDRB |= _BV(DDB1);
	PORTB |= _BV(PORTB0); // enable internal pull-up
	PORTB &= ~_BV(PORTB1); // status led off
	GIMSK &= ~_BV(PCIE); // disable pin-change IRQs
	PCMSK = 0; // disable pin-change IRQs on all pins of port B

@@ -36,19 +36,19 @@ void init_buttons()

void susp_buttons()
{
	DDRB &= ~(_BV(DDB1)); // set as input
	PORTB |= _BV(PORTB1);  // enable internal pull-up
	PORTB &= ~_BV(PORTB0); // set to zero
	DDRB &= ~(_BV(DDB0)); // set as input
	PORTB |= _BV(PORTB0);  // enable internal pull-up
	PORTB &= ~_BV(PORTB1); // set to zero

	GIMSK |= _BV(PCIE);

	PCMSK = _BV(PCINT1);
	PCMSK = _BV(PCINT0);
		// disable pin-change IRQs on all pins except PB1
}

void timer_check_buttons()
{
	unsigned char cur = !(PINB & _BV(PINB1));
	unsigned char cur = !(PINB & _BV(PINB0));
	unsigned char prev = prev_state;

	prev_state = cur;
@@ -118,8 +118,8 @@ unsigned char buttons_wait_for_release()

		_delay_ms(100);

		pin = PINB & _BV(PINB1);
	} while (!(pin & _BV(PINB1)));
		pin = PINB & _BV(PINB0);
	} while (!(pin & _BV(PINB0)));

	status_led_on_off(0);