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_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 {
|
||||
OFF,
|
||||
TIMEZONE,
|
||||
FORMAT,
|
||||
LEDS,
|
||||
DOTS,
|
||||
EXIT
|
||||
} menu_state_t;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ LDFLAGS = -Wl,-Map=$(BUILDDIR)/$(TARGET).map,--cref
|
||||
LDFLAGS += -lm
|
||||
#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. ####
|
||||
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){
|
||||
if(get_menu_active())
|
||||
if (dir) {
|
||||
menu_up_down(1);
|
||||
} else {
|
||||
menu_up_down(-1);
|
||||
} else {
|
||||
menu_up_down(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,10 @@ int main(void){
|
||||
|
||||
clock_to_buffer(clock);
|
||||
|
||||
PORTC = (PORTC & (~DOT)) | (clock[0]%2) << 4; // blink dots
|
||||
if(menu_val_dots)
|
||||
PORTC = (PORTC & (~DOT)) | (clock[0]%2) << 4; // blink dots
|
||||
else
|
||||
PORTC &= ~DOT;
|
||||
_delay_ms(100);
|
||||
}
|
||||
print_SR_Buffer();
|
||||
@@ -105,20 +108,25 @@ void setup(){
|
||||
eeprom_write_byte(&menu_val_format_ee, menu_val_format);
|
||||
}
|
||||
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;
|
||||
|
||||
DDRB = STATUS_LED_B
|
||||
DDRB = STATUS_LED_B
|
||||
| STATUS_LED_C
|
||||
| MOSI
|
||||
| CLK;
|
||||
|
||||
DDRC = LATCH_SR
|
||||
DDRC = LATCH_SR
|
||||
| ENABLE_SR
|
||||
| DOT
|
||||
| ENABLE_TUBE_PSU;
|
||||
|
||||
DDRD = RESET_SR
|
||||
DDRD = RESET_SR
|
||||
| TUBE_LED;
|
||||
|
||||
//--------------------------
|
||||
|
||||
@@ -10,6 +10,8 @@ int8_t menu_val_timezone;
|
||||
uint8_t menu_val_format_ee EEMEM;
|
||||
uint8_t menu_val_format;
|
||||
uint8_t menu_val_leds_ee EEMEM;
|
||||
uint8_t menu_val_dots;
|
||||
uint8_t menu_val_dots_ee EEMEM;
|
||||
|
||||
uint8_t get_menu_active(){
|
||||
if(state != OFF)
|
||||
@@ -29,7 +31,6 @@ void enter_menu(){
|
||||
selected ^= 1;
|
||||
break;
|
||||
}
|
||||
//debug_menu();
|
||||
}
|
||||
|
||||
const char* get_menu_text(){
|
||||
@@ -40,7 +41,6 @@ const char* get_menu_text(){
|
||||
switch(state){
|
||||
case TIMEZONE:
|
||||
res = " ";
|
||||
menu_val_timezone = eeprom_read_byte((uint8_t*)&menu_val_timezone_ee);
|
||||
if(menu_val_timezone < 0)
|
||||
res[3] = '-';
|
||||
else
|
||||
@@ -58,6 +58,12 @@ const char* get_menu_text(){
|
||||
res[4] = (OCR2A / 10 % 10) + 0x30;
|
||||
res[5] = (OCR2A % 10) + 0x30;
|
||||
break;
|
||||
case DOTS:
|
||||
if(menu_val_dots)
|
||||
res = " AN ";
|
||||
else
|
||||
res = " AUS";
|
||||
break;
|
||||
default:
|
||||
res = "ERROR ";
|
||||
break;
|
||||
@@ -66,6 +72,7 @@ const char* get_menu_text(){
|
||||
switch(state){
|
||||
case TIMEZONE:
|
||||
res = "ZONE ";
|
||||
eeprom_write_byte((uint8_t*)&menu_val_timezone_ee, menu_val_timezone);
|
||||
break;
|
||||
case FORMAT:
|
||||
res = "FORMAT";
|
||||
@@ -74,6 +81,10 @@ const char* get_menu_text(){
|
||||
res = "LED ";
|
||||
eeprom_write_byte(&menu_val_leds_ee, OCR2A);
|
||||
break;
|
||||
case DOTS:
|
||||
res = "PUNKTE";
|
||||
eeprom_write_byte((uint8_t*)&menu_val_dots_ee, menu_val_dots);
|
||||
break;
|
||||
case EXIT:
|
||||
res = "ZURUEK";
|
||||
break;
|
||||
@@ -93,7 +104,6 @@ void menu_up_down(uint8_t up_down){
|
||||
menu_val_timezone = 12;
|
||||
if(menu_val_timezone > 12)
|
||||
menu_val_timezone = -12;
|
||||
eeprom_write_byte((uint8_t*)&menu_val_timezone_ee, menu_val_timezone);
|
||||
break;
|
||||
case FORMAT:
|
||||
if(menu_val_format == 12)
|
||||
@@ -104,6 +114,9 @@ void menu_up_down(uint8_t up_down){
|
||||
case LEDS:
|
||||
OCR2A += up_down;
|
||||
break;
|
||||
case DOTS:
|
||||
menu_val_dots ^= 0x01;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user