![]() |
Repetier-Firmware
0.80
|
00001 /* 00002 This file is part of Repetier-Firmware. 00003 00004 Repetier-Firmware is free software: you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation, either version 3 of the License, or 00007 (at your option) any later version. 00008 00009 Repetier-Firmware is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with Repetier-Firmware. If not, see <http://www.gnu.org/licenses/>. 00016 00017 */ 00018 00019 #ifndef _EEPROM_H 00020 #define _EEPROM_H 00021 00022 #include <avr/eeprom.h> 00023 00024 // Id to distinguish version changes 00025 #define EEPROM_PROTOCOL_VERSION 1 00026 00030 #define EEPROM_OFFSET 0 00031 #define EPR_MAGIC_BYTE 0 00032 #define EPR_ACCELERATION_TYPE 1 00033 #define EPR_XAXIS_STEPS_PER_MM 3 00034 #define EPR_YAXIS_STEPS_PER_MM 7 00035 #define EPR_ZAXIS_STEPS_PER_MM 11 00036 #define EPR_X_MAX_FEEDRATE 15 00037 #define EPR_Y_MAX_FEEDRATE 19 00038 #define EPR_Z_MAX_FEEDRATE 23 00039 #define EPR_X_HOMING_FEEDRATE 27 00040 #define EPR_Y_HOMING_FEEDRATE 31 00041 #define EPR_Z_HOMING_FEEDRATE 35 00042 #define EPR_MAX_JERK 39 00043 #define EPR_OPS_MIN_DISTANCE 43 00044 #define EPR_MAX_ZJERK 47 00045 #define EPR_X_MAX_ACCEL 51 00046 #define EPR_Y_MAX_ACCEL 55 00047 #define EPR_Z_MAX_ACCEL 59 00048 #define EPR_X_MAX_TRAVEL_ACCEL 63 00049 #define EPR_Y_MAX_TRAVEL_ACCEL 67 00050 #define EPR_Z_MAX_TRAVEL_ACCEL 71 00051 #define EPR_BAUDRATE 75 00052 #define EPR_MAX_INACTIVE_TIME 79 00053 #define EPR_STEPPER_INACTIVE_TIME 83 00054 #define EPR_OPS_RETRACT_DISTANCE 87 00055 #define EPR_OPS_RETRACT_BACKLASH 91 00056 #define EPR_EXTRUDER_SPEED 95 00057 #define EPR_OPS_MOVE_AFTER 99 00058 #define EPR_OPS_MODE 103 00059 #define EPR_INTEGRITY_BYTE 104 // Here the xored sum over eeprom is stored 00060 #define EPR_VERSION 105 // Version id for updates in EEPROM storage 00061 #define EPR_BED_HEAT_MANAGER 106 00062 #define EPR_BED_DRIVE_MAX 107 00063 #define EPR_BED_PID_PGAIN 108 00064 #define EPR_BED_PID_IGAIN 112 00065 #define EPR_BED_PID_DGAIN 116 00066 #define EPR_BED_PID_MAX 120 00067 #define EPR_BED_DRIVE_MIN 124 00068 #define EPR_PRINTING_TIME 125 // Time in seconds printing 00069 #define EPR_PRINTING_DISTANCE 129 // Filament length printed 00070 #define EPR_X_HOME_OFFSET 133 00071 #define EPR_Y_HOME_OFFSET 137 00072 #define EPR_Z_HOME_OFFSET 141 00073 #define EPR_X_LENGTH 145 00074 #define EPR_Y_LENGTH 149 00075 #define EPR_Z_LENGTH 153 00076 #define EPR_BACKLASH_X 157 00077 #define EPR_BACKLASH_Y 161 00078 #define EPR_BACKLASH_Z 165 00079 00080 #define EEPROM_EXTRUDER_OFFSET 200 00081 // bytes per extruder needed, leave some space for future development 00082 #define EEPROM_EXTRUDER_LENGTH 100 00083 // Extruder positions relative to extruder start 00084 #define EPR_EXTRUDER_STEPS_PER_MM 0 00085 #define EPR_EXTRUDER_MAX_FEEDRATE 4 00086 // Feedrate from halted extruder in mm/s 00087 #define EPR_EXTRUDER_MAX_START_FEEDRATE 8 00088 // Acceleration in mm/s^2 00089 #define EPR_EXTRUDER_MAX_ACCELERATION 12 00090 #define EPR_EXTRUDER_HEAT_MANAGER 16 00091 #define EPR_EXTRUDER_DRIVE_MAX 17 00092 #define EPR_EXTRUDER_PID_PGAIN 18 00093 #define EPR_EXTRUDER_PID_IGAIN 22 00094 #define EPR_EXTRUDER_PID_DGAIN 26 00095 #define EPR_EXTRUDER_PID_MAX 30 00096 #define EPR_EXTRUDER_X_OFFSET 31 00097 #define EPR_EXTRUDER_Y_OFFSET 35 00098 #define EPR_EXTRUDER_WATCH_PERIOD 39 00099 #define EPR_EXTRUDER_ADVANCE_K 41 00100 #define EPR_EXTRUDER_DRIVE_MIN 45 00101 #define EPR_EXTRUDER_ADVANCE_L 46 00102 #define EPR_EXTRUDER_WAIT_RETRACT_TEMP 50 00103 #define EPR_EXTRUDER_WAIT_RETRACT_UNITS 52 00104 #if EEPROM_MODE!=0 00105 00106 extern inline void epr_set_byte(uint pos,byte value); 00107 extern inline void epr_set_int(uint pos,int value); 00108 extern inline void epr_set_long(uint pos,long value); 00109 extern inline void epr_set_float(uint pos,float value); 00110 extern void epr_data_to_eeprom(byte corrupted); 00111 extern void epr_eeprom_to_data(); 00112 extern void epr_eeprom_reset(); 00113 00114 inline byte epr_get_byte(uint pos) { 00115 return eeprom_read_byte ((unsigned char *)(EEPROM_OFFSET+pos)); 00116 } 00117 inline int epr_get_int(uint pos) { 00118 return eeprom_read_word((unsigned int *)(EEPROM_OFFSET+pos)); 00119 } 00120 inline long epr_get_long(uint pos) { 00121 return eeprom_read_dword((unsigned long*)(EEPROM_OFFSET+pos)); 00122 } 00123 inline float epr_get_float(uint pos) { 00124 float v; 00125 eeprom_read_block(&v,(void *)(EEPROM_OFFSET+pos),4); // newer gcc have eeprom_read_block but not arduino 22 00126 return v; 00127 } 00128 #endif 00129 00130 extern void epr_output_settings(); 00131 extern void epr_update(GCode *com); 00132 extern void epr_init(); 00133 extern void epr_init_baudrate(); 00134 extern void epr_update_usage(); 00135 #endif 00136