#include "bios_keys.h"
#include "bios_leds.h"
#include <stdint.h>
# define F_CPU 16000000UL
#include <util/delay.h>
void main_toggle() {
MenuKeys Keys;
LEDs disp;
uint8_t state = 0;
while(1)
{
uint8_t current = Keys.get();
uint8_t change = current ^ state;
state = current;
if ( (0 != (change & MenuKeys::Key4)) && (0 != (current & MenuKeys::Key4)) ) disp.set( disp.get() ^ LEDs::LED0 );
if ( (0 != (change & MenuKeys::Key5)) && (0 != (current & MenuKeys::Key5)) ) disp.set( disp.get() ^ LEDs::LED1 );
if ( (0 != (change & MenuKeys::Key6)) && (0 != (current & MenuKeys::Key6)) ) disp.set( disp.get() ^ LEDs::LED2 );
if ( (0 != (change & MenuKeys::Key7)) && (0 != (current & MenuKeys::Key7)) ) disp.set( disp.get() ^ LEDs::LED3 );
_delay_ms(10);
}
}
void main_menu() {
MenuKeys Keys;
LEDs disp;
uint8_t state = 0;
uint8_t mode = 1;
uint8_t prev = 0;
while(1)
{
uint8_t current = Keys.get();
uint8_t change = current ^ state;
state = current;
if ( (0 != (change & MenuKeys::Key4)) && (0 != (current & MenuKeys::Key4)) ) { if (0x01<mode) mode=mode>>1; }
if ( (0 != (change & MenuKeys::Key5)) && (0 != (current & MenuKeys::Key5)) ) {}
if ( (0 != (change & MenuKeys::Key6)) && (0 != (current & MenuKeys::Key6)) ) {}
if ( (0 != (change & MenuKeys::Key7)) && (0 != (current & MenuKeys::Key7)) ) { if (0x08>mode) mode=mode<<1; }
if (mode!=prev) {
disp.set( disp.get() ^ mode ^ prev );
prev = mode;
}
_delay_ms(10);
}
}
int main(void)
{
main_toggle();
return(0);
}