add setting for dots
This commit is contained in:
@@ -6,12 +6,15 @@ extern int8_t menu_val_timezone_ee EEMEM;
|
|||||||
extern uint8_t menu_val_format;
|
extern uint8_t menu_val_format;
|
||||||
extern uint8_t menu_val_format_ee EEMEM;
|
extern uint8_t menu_val_format_ee EEMEM;
|
||||||
extern uint8_t menu_val_leds_ee EEMEM;
|
extern uint8_t menu_val_leds_ee EEMEM;
|
||||||
|
extern uint8_t menu_val_dots;
|
||||||
|
extern uint8_t menu_val_dots_ee EEMEM;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OFF,
|
OFF,
|
||||||
TIMEZONE,
|
TIMEZONE,
|
||||||
FORMAT,
|
FORMAT,
|
||||||
LEDS,
|
LEDS,
|
||||||
|
DOTS,
|
||||||
EXIT
|
EXIT
|
||||||
} menu_state_t;
|
} menu_state_t;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ LDFLAGS = -Wl,-Map=$(BUILDDIR)/$(TARGET).map,--cref
|
|||||||
LDFLAGS += -lm
|
LDFLAGS += -lm
|
||||||
#LDFLAGS += -nostdlib
|
#LDFLAGS += -nostdlib
|
||||||
|
|
||||||
AVRDUDE_FLAGS = -p $(MCU) -C ./avrdude.conf -c $(AVRDUDE_PROGRAMMER) -U flash:w:$(BUILDDIR)/$(TARGET).hex
|
AVRDUDE_FLAGS = -p $(MCU) -C ./avrdude.conf -c $(AVRDUDE_PROGRAMMER) -U flash:w:$(BUILDDIR)/$(TARGET).hex -U eeprom:w:settings.eep
|
||||||
|
|
||||||
#### Define programs and commands. ####
|
#### Define programs and commands. ####
|
||||||
CC = avr-gcc
|
CC = avr-gcc
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ int8_t parse_nmea_gps(char input_string[RX_INPUT_BUFFER_SIZE], uint8_t output_bu
|
|||||||
void encoder_action(uint8_t dir){
|
void encoder_action(uint8_t dir){
|
||||||
if(get_menu_active())
|
if(get_menu_active())
|
||||||
if (dir) {
|
if (dir) {
|
||||||
menu_up_down(1);
|
|
||||||
} else {
|
|
||||||
menu_up_down(-1);
|
menu_up_down(-1);
|
||||||
|
} else {
|
||||||
|
menu_up_down(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +78,10 @@ int main(void){
|
|||||||
|
|
||||||
clock_to_buffer(clock);
|
clock_to_buffer(clock);
|
||||||
|
|
||||||
|
if(menu_val_dots)
|
||||||
PORTC = (PORTC & (~DOT)) | (clock[0]%2) << 4; // blink dots
|
PORTC = (PORTC & (~DOT)) | (clock[0]%2) << 4; // blink dots
|
||||||
|
else
|
||||||
|
PORTC &= ~DOT;
|
||||||
_delay_ms(100);
|
_delay_ms(100);
|
||||||
}
|
}
|
||||||
print_SR_Buffer();
|
print_SR_Buffer();
|
||||||
@@ -105,6 +108,11 @@ void setup(){
|
|||||||
eeprom_write_byte(&menu_val_format_ee, menu_val_format);
|
eeprom_write_byte(&menu_val_format_ee, menu_val_format);
|
||||||
}
|
}
|
||||||
OCR2A = eeprom_read_byte(&menu_val_leds_ee);
|
OCR2A = eeprom_read_byte(&menu_val_leds_ee);
|
||||||
|
menu_val_dots = eeprom_read_byte(&menu_val_dots_ee);
|
||||||
|
if(menu_val_dots == 0xFF){
|
||||||
|
menu_val_dots = 0x01;
|
||||||
|
eeprom_write_byte((uint8_t*)&menu_val_dots_ee, menu_val_dots);
|
||||||
|
}
|
||||||
|
|
||||||
DDRA = ENABLE_TUBE_SUPPLY;
|
DDRA = ENABLE_TUBE_SUPPLY;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ int8_t menu_val_timezone;
|
|||||||
uint8_t menu_val_format_ee EEMEM;
|
uint8_t menu_val_format_ee EEMEM;
|
||||||
uint8_t menu_val_format;
|
uint8_t menu_val_format;
|
||||||
uint8_t menu_val_leds_ee EEMEM;
|
uint8_t menu_val_leds_ee EEMEM;
|
||||||
|
uint8_t menu_val_dots;
|
||||||
|
uint8_t menu_val_dots_ee EEMEM;
|
||||||
|
|
||||||
uint8_t get_menu_active(){
|
uint8_t get_menu_active(){
|
||||||
if(state != OFF)
|
if(state != OFF)
|
||||||
@@ -29,7 +31,6 @@ void enter_menu(){
|
|||||||
selected ^= 1;
|
selected ^= 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//debug_menu();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* get_menu_text(){
|
const char* get_menu_text(){
|
||||||
@@ -40,7 +41,6 @@ const char* get_menu_text(){
|
|||||||
switch(state){
|
switch(state){
|
||||||
case TIMEZONE:
|
case TIMEZONE:
|
||||||
res = " ";
|
res = " ";
|
||||||
menu_val_timezone = eeprom_read_byte((uint8_t*)&menu_val_timezone_ee);
|
|
||||||
if(menu_val_timezone < 0)
|
if(menu_val_timezone < 0)
|
||||||
res[3] = '-';
|
res[3] = '-';
|
||||||
else
|
else
|
||||||
@@ -58,6 +58,12 @@ const char* get_menu_text(){
|
|||||||
res[4] = (OCR2A / 10 % 10) + 0x30;
|
res[4] = (OCR2A / 10 % 10) + 0x30;
|
||||||
res[5] = (OCR2A % 10) + 0x30;
|
res[5] = (OCR2A % 10) + 0x30;
|
||||||
break;
|
break;
|
||||||
|
case DOTS:
|
||||||
|
if(menu_val_dots)
|
||||||
|
res = " AN ";
|
||||||
|
else
|
||||||
|
res = " AUS";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
res = "ERROR ";
|
res = "ERROR ";
|
||||||
break;
|
break;
|
||||||
@@ -66,6 +72,7 @@ const char* get_menu_text(){
|
|||||||
switch(state){
|
switch(state){
|
||||||
case TIMEZONE:
|
case TIMEZONE:
|
||||||
res = "ZONE ";
|
res = "ZONE ";
|
||||||
|
eeprom_write_byte((uint8_t*)&menu_val_timezone_ee, menu_val_timezone);
|
||||||
break;
|
break;
|
||||||
case FORMAT:
|
case FORMAT:
|
||||||
res = "FORMAT";
|
res = "FORMAT";
|
||||||
@@ -74,6 +81,10 @@ const char* get_menu_text(){
|
|||||||
res = "LED ";
|
res = "LED ";
|
||||||
eeprom_write_byte(&menu_val_leds_ee, OCR2A);
|
eeprom_write_byte(&menu_val_leds_ee, OCR2A);
|
||||||
break;
|
break;
|
||||||
|
case DOTS:
|
||||||
|
res = "PUNKTE";
|
||||||
|
eeprom_write_byte((uint8_t*)&menu_val_dots_ee, menu_val_dots);
|
||||||
|
break;
|
||||||
case EXIT:
|
case EXIT:
|
||||||
res = "ZURUEK";
|
res = "ZURUEK";
|
||||||
break;
|
break;
|
||||||
@@ -93,7 +104,6 @@ void menu_up_down(uint8_t up_down){
|
|||||||
menu_val_timezone = 12;
|
menu_val_timezone = 12;
|
||||||
if(menu_val_timezone > 12)
|
if(menu_val_timezone > 12)
|
||||||
menu_val_timezone = -12;
|
menu_val_timezone = -12;
|
||||||
eeprom_write_byte((uint8_t*)&menu_val_timezone_ee, menu_val_timezone);
|
|
||||||
break;
|
break;
|
||||||
case FORMAT:
|
case FORMAT:
|
||||||
if(menu_val_format == 12)
|
if(menu_val_format == 12)
|
||||||
@@ -104,6 +114,9 @@ void menu_up_down(uint8_t up_down){
|
|||||||
case LEDS:
|
case LEDS:
|
||||||
OCR2A += up_down;
|
OCR2A += up_down;
|
||||||
break;
|
break;
|
||||||
|
case DOTS:
|
||||||
|
menu_val_dots ^= 0x01;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user