From 88de25f7a89b3645c6995d8c7d02980273a72350 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Tue, 3 Jun 2014 15:38:58 +0200 Subject: [PATCH] latest firmware version --- Power/firmware/PowerSwitch.c | 38 +++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Power/firmware/PowerSwitch.c b/Power/firmware/PowerSwitch.c index 99a5db1..0c54c6f 100755 --- a/Power/firmware/PowerSwitch.c +++ b/Power/firmware/PowerSwitch.c @@ -100,7 +100,7 @@ void switchoutput(uint8_t chan, int8_t to) { output_error &= ~(1<= -1) {settings_changed = 3;} + if(to >= -1) {settings_changed |= 4;} uint8_t en1 = ((output_enable & 1) && !(output_error & 1))?0:1; uint8_t en2 = ((output_enable & 2) && !(output_error & 2))?0:1; @@ -226,7 +226,7 @@ ISR(USART1_RX_vect) { limit[rxbuf[2]] = lim; } send_answer_hex(limit[rxbuf[2]]); - settings_changed = rxbuf[2]+1; + settings_changed |= rxbuf[2]+1; } else { forward_msg(7); @@ -238,6 +238,8 @@ ISR(USART1_RX_vect) { } +#define EEPROM_DIS() while(EECR & (1<>8)&0xFF); - } - if (settings_changed == 2) { - settings_changed = 0; - eeprom_write(0x12,limit[1]&0xFF); - eeprom_write(0x13,(limit[1]>>8)&0xFF); - } - if (settings_changed == 3) { - settings_changed = 0; - eeprom_write(0x14,output_enable); - } + _delay_ms(3000); + if(settings_changed != 0) { + if (settings_changed & 1) { + settings_changed &= ~1; + eeprom_write(0x10,limit[0]&0xFF); + eeprom_write(0x11,(limit[0]>>8)&0xFF); + } + if (settings_changed & 2) { + settings_changed &= ~2; + eeprom_write(0x12,limit[1]&0xFF); + eeprom_write(0x13,(limit[1]>>8)&0xFF); + } + if (settings_changed & 4) { + settings_changed &= ~4; + eeprom_write(0x14,output_enable); + } + EEPROM_DIS(); + } } } \ No newline at end of file -- 2.43.0