Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SETTINGS
- #define SETTING_BRAKE_FLASHES 0
- #define SETTING_UNIT 1
- #define SETTING_SCREEN_SAVER 2
- #define SETTING_FLASH_BRAKE_LIGHT 3
- #define SETTING_HEADLIGHT_TIME 4
- #define SETTING_BR_DHEADLIGHT 5
- #define SETTING_BR_HEADLIGHT 6
- #define SETTING_BR_DTAILLIGHT 7
- #define SETTING_BR_TAILLIGHT 8
- uint8_t settings[9] = {
- 10, // SETTING_BRAKE_FLASHES (8 - 13)
- 0, // SETTING_UNIT (0 = METRIC ; 1 = IMPERIAL)
- 1, // SETTING_SCREEN_SAVER (0 = NO ; 1 = YES)
- 1, // SETTING_FLASH_BRAKE_LIGHT (0 = NO ; 1 = YES)
- 0, // SETTING_HEADLIGHT_TIME (0 = 1/10S ; 1 = 1/5S ; 2 = 1/4S ; 3 = 1/3S ; 4 = FULL)
- 45, // SETTING_BR_DHEADLIGHT (8 - 100)
- 120, // SETTING_BR_HEADLIGHT (86 - 145)
- 45, // SETTING_BR_DTAILLIGHT (8 - 64)
- 86 // SETTING_BR_TAILLIGHT (8 - 132)
- };
- // SPEEDS
- #define SPEED_MAX 0
- #define SPEED_TOP 1
- uint8_t speedStat[2] = {
- 0, // SPEED_MAX
- 0, // SPEED_TOP
- };
- // SYSTEM STATES
- #define STATE_SCREEN_STATUS 0
- #define STATE_HEADLIGHT 1
- #define STATE_FOG_LIGHT 2
- #define STATE_SCREEN_INFO 3
- uint32_t states[4] = {
- 1, // STATE_SCREEN_STATUS
- 0, // STATE_HEADLIGHT
- 0, // STATE_FOG_LIGHT
- 0 // STATE_SCREEN_INFO
- };
- // DISTANCES
- #define DISTANCE_TOTAL 0
- #define DISTANCE_TRIP_A 1
- #define DISTANCE_TRIP_B 2
- #define DISTANCE_PER_DAY 3
- volatile uint32_t distances[4] = {
- 0, // DISTANCE_TOTAL
- 0, // DISTANCE_TRIP_A
- 0, // DISTANCE_TRIP_B
- 0 // DISTANCE_PER_DAY
- };
- // STATS
- #define STAT_TOTAL_SPEED 0
- #define STAT_TAKEN_SPEED 1
- #define STAT_PEDAL_TIME 2
- #define STAT_TIME_AVG_DIST 3
- #define STAT_AVG_DISTANCE 4
- #define STAT_WORK_HOURS 5
- #define STAT_PEDAL_TIME_B 6
- #define STAT_REVTOTAL 7
- #define STAT_REV_DISTANCE 8
- #define STAT_DIST_PD_AVG 9
- #define STAT_DIST_PD_TAKEN 10
- uint32_t stats[11] = { // DEFAULT VALUES
- 0, // STAT_TOTAL_SPEED
- 0, // STAT_TAKEN_SPEED
- 0, // STAT_PEDAL_TIME
- 0, // STAT_TIME_AVG_DIST
- 0, // STAT_AVG_DISTANCE
- 0, // STAT_WORK_HOURS
- 0, // STAT_PEDAL_TIME_B
- 0, // STAT_REVTOTAL
- 0, // STAT_REV_DISTANCE
- 0, // STAT_DIST_PD_AVG
- 0 // STAT_DIST_PD_TAKEN
- };
- // TARGET
- #define TARGET_DISTANCE 0
- #define TARGET_UNIX_START 1
- #define TARGET_PEDAL_TIME 2
- uint32_t target[3] = {
- 0, // TARGET_DISTANCE
- 0, // TARGET_UNIX_START
- 0 // TARGET_PEDAL_TIME
- };
- // TRIGGERS
- #define TRIGGER_FRONT_BRAK 0
- #define TRIGGER_REAR_BRAKE 1
- uint16_t triggers[2] = {
- 800, // TRIGGER_FRONT_BRAKE
- 800 // TRIGGER_REAR_BRAKE
- };
- void save()
- {
- uint8_t loopIndexCount = 0;
- stats[STAT_TIME_AVG_DIST] += TIME_FOR_SAVE / 1000;
- stats[STAT_WORK_HOURS] += (millis() - savedTick) / 1000;
- savedTick = millis();
- if (target[TARGET_DISTANCE] != 0) target[TARGET_PEDAL_TIME] += TIME_FOR_SAVE / 1000;
- EEPROMUpdatelong(EEPROM_WOKR_HOURS, stats[STAT_WORK_HOURS]);
- if (!sleepMode)
- {
- // SETTINGS
- for (rev = 0; rev < 10; rev++) EEPROM.update(rev, settings[rev]);
- // SPEED STATS
- for (rev = 20; rev < 22; rev++)
- {
- EEPROM.update(rev, speedStat[loopIndexCount]);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 28; rev < 41; rev += 4)
- {
- EEPROMUpdatelong(rev, distances[loopIndexCount]);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 22; rev < 26; rev++)
- {
- EEPROM.update(rev, states[loopIndexCount]);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 44; rev < 85; rev += 4)
- {
- EEPROMUpdatelong(rev, stats[loopIndexCount]);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 100; rev < 105; rev += 4)
- {
- EEPROMUpdatelong(rev, triggers[loopIndexCount]);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 88; rev < 97; rev += 4)
- {
- EEPROMUpdatelong(rev, target[loopIndexCount]);
- loopIndexCount++;
- }
- EEPROMUpdatelong(EEPROM_TARGET_DISTANCE, target[TARGET_DISTANCE]);
- EEPROMUpdatelong(EEPROM_TARGET_CYCLING_TIME, target[TARGET_PEDAL_TIME]);
- }
- }
- void loadEEPROM()
- {
- uint8_t loopIndexCount = 0;
- // SETTINGS
- for (rev = 0; rev < 10; rev++) settings[rev] = EEPROM.read(rev);
- // SPEED STATS
- for (rev = 20; rev < 22; rev++)
- {
- speedStat[loopIndexCount] = EEPROM.read(rev);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 28; rev < 41; rev += 4)
- {
- distances[loopIndexCount] = EEPROMReadlong(rev);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 22; rev < 26; rev++)
- {
- states[loopIndexCount] = EEPROM.read(rev);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 44; rev < 85; rev += 4)
- {
- stats[loopIndexCount] = EEPROMReadlong(rev);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 100; rev < 105; rev += 4)
- {
- triggers[loopIndexCount] = EEPROMReadlong(rev);
- loopIndexCount++;
- }
- loopIndexCount = 0;
- for (rev = 88; rev < 97; rev += 4)
- {
- target[loopIndexCount] = EEPROMReadlong(rev);
- loopIndexCount++;
- }
- // NEEDED FOR SETTINGS PART
- pressedScreenCont = EEPROM.read(EEPROM_RTC_DAY); // TEMPORARY
- pressedLights = EEPROM.read(EEPROM_RTC_MONTH); // TEMPORARY
- pressedTurnSignal_L = EEPROM.read(EEPROM_RTC_YEAR); // TEMPORARY
- brakeFlash = EEPROM.read(EEPROM_BRAKE_TRIGGER_STEP); // TEMPORARY
- lastHeadlightTick = EEPROM.read(EEPROM_DISTANCE_PD_DAY); // TEMPORARY
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement