aboutsummaryrefslogtreecommitdiff
path: root/fsm
diff options
context:
space:
mode:
authorSelene ToyKeeper2024-03-12 13:17:47 -0600
committerSelene ToyKeeper2024-03-12 13:17:47 -0600
commit8dbc5c8b694a5a60b5f2bbc4228037eff119ba68 (patch)
tree4e2404dcbc74c175bc9c60a68bb18708f15cb521 /fsm
parentadded wurkkos-ts25-boost (early version made from spec, no clue if it works) (diff)
parentenabled eeprom read/write stabilization by default on recent MCUs, (diff)
downloadanduril-8dbc5c8b694a5a60b5f2bbc4228037eff119ba68.tar.gz
anduril-8dbc5c8b694a5a60b5f2bbc4228037eff119ba68.tar.bz2
anduril-8dbc5c8b694a5a60b5f2bbc4228037eff119ba68.zip
Merge branch 'trunk' into wurkkos-ts25-boost
* trunk: enabled eeprom read/write stabilization by default on recent MCUs, to prevent corrupt data thefreeman-avr32dd20-devkit: enable boost bypass at boot, so AA/NiMH can boot avr32dd20-devkit: use unimplemented "CH" pin as a boost bypass control added "emisar-2ch-fet-joined" build, for D4S w/ lighted switch documented FW3X swapped pins better documented Wurkkos TS25/TS11/FC13 distinctions build.sh: don't require DFPs, newer avr-libc doesn't need them use BLIP_LEVEL instead of 0 for "blip"s clarified which-hex-file.md a bit; make sure the model number matches fw3x: reduced pulsing on low modes
Diffstat (limited to 'fsm')
-rw-r--r--fsm/eeprom.c8
-rw-r--r--fsm/eeprom.h8
2 files changed, 12 insertions, 4 deletions
diff --git a/fsm/eeprom.c b/fsm/eeprom.c
index 8f8bd67..436a736 100644
--- a/fsm/eeprom.c
+++ b/fsm/eeprom.c
@@ -14,7 +14,7 @@ uint8_t eeprom[EEPROM_BYTES];
#endif
uint8_t load_eeprom() {
- #if defined(LED_ENABLE_PIN) || defined(LED2_ENABLE_PIN)
+ #ifdef USE_EEP_DELAY
delay_4ms(2); // wait for power to stabilize
#endif
@@ -32,7 +32,7 @@ uint8_t load_eeprom() {
}
void save_eeprom() {
- #if defined(LED_ENABLE_PIN) || defined(LED2_ENABLE_PIN)
+ #ifdef USE_EEP_DELAY
delay_4ms(2); // wait for power to stabilize
#endif
@@ -54,7 +54,7 @@ uint8_t eeprom_wl[EEPROM_WL_BYTES];
uint8_t * eep_wl_prev_offset;
uint8_t load_eeprom_wl() {
- #if defined(LED_ENABLE_PIN) || defined(LED2_ENABLE_PIN)
+ #ifdef USE_EEP_DELAY
delay_4ms(2); // wait for power to stabilize
#endif
@@ -83,7 +83,7 @@ uint8_t load_eeprom_wl() {
}
void save_eeprom_wl() {
- #if defined(LED_ENABLE_PIN) || defined(LED2_ENABLE_PIN)
+ #ifdef USE_EEP_DELAY
delay_4ms(2); // wait for power to stabilize
#endif
diff --git a/fsm/eeprom.h b/fsm/eeprom.h
index 1e10fd2..d5f0363 100644
--- a/fsm/eeprom.h
+++ b/fsm/eeprom.h
@@ -55,3 +55,11 @@
// if this marker isn't found, the eeprom is assumed to be blank
#define EEP_MARKER 0b10100101
+// wait a few ms before eeprom operations, to wait for power to stabilize
+// (otherwise reads or writes can get corrupt data)
+// (not necessary on some hardware,
+// but enabled by default when there's space)
+#if defined(LED_ENABLE_PIN) || defined(LED2_ENABLE_PIN) || (ROM_SIZE > 10000)
+ #define USE_EEP_DELAY
+#endif
+
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.