From: Jan Michel Date: Tue, 3 Jun 2014 13:38:58 +0000 (+0200) Subject: latest firmware version X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=88de25f7a89b3645c6995d8c7d02980273a72350;p=electronics.git latest firmware version --- 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