Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00062 #ifndef __MTOUCH_EEPROM_H
00063 #define __MTOUCH_EEPROM_H
00064
00065 #if (_EEPROMSIZE == 0) && !defined(MTOUCH_EEPROM_STORED_IN_RAM)
00066 #error The mTouch Framework's EEPROM implementation has been enabled, but the selected part does not contain an EEPROM! Please choose another processor or comment-out MTOUCH_EEPROM_ENABLED in mTouch_config.h
00067 #endif
00068
00069 #if defined(MTOUCH_EEPROM_STORED_IN_RAM)
00070 #define MTOUCH_EEPROM_read(addr) mTouch_configOptions[addr]
00071 #define MTOUCH_EEPROM_write(addr, value) mTouch_configOptions[addr] = value
00072 #else
00073 #if defined(_PIC18) | defined(_PIC14)
00074 #define MTOUCH_EEPROM_read(addr) EEPROM_READ(addr)
00075 #define MTOUCH_EEPROM_write(addr, value) EEPROM_WRITE(addr, value)
00076 #else
00077 #define MTOUCH_EEPROM_read(addr) eeprom_read(addr)
00078 #define MTOUCH_EEPROM_write(addr, value) eeprom_write(addr, value)
00079 #endif
00080 #endif
00081
00082 #if defined(MTOUCH_EEPROM_ENABLED)
00083 void mTouch_EEPROM_Init(void);
00084 void mTouch_EEPROM_Reset(void);
00085 #endif
00086
00087
00088
00089
00090
00091
00092 #define MTOUCH_EEPROM_SYS_SIZE 15
00093 #define MTOUCH_EEPROM_SENS_SIZE 4
00094 #define MTOUCH_EEPROM_SIZE MTOUCH_EEPROM_SYS_SIZE + (MTOUCH_EEPROM_SENS_SIZE * MTOUCH_NUMBER_SENSORS)
00095
00096
00097 #define MTOUCH_EEPROM_SYS_ADR MTOUCH_EEPROM_START_ADR
00098 #define MTOUCH_EEPROM_SENS_ADR MTOUCH_EEPROM_SYS_ADR + MTOUCH_EEPROM_SYS_SIZE
00099
00100
00101 #define MTOUCH_EEPROM_END_ADR MTOUCH_EEPROM_SENS_ADR + (MTOUCH_EEPROM_SENS_SIZE * MTOUCH_NUMBER_SENSORS)
00102
00103
00104
00105
00106
00107
00108
00109 #define MTOUCH_EEPROM_pDEB_ADRL MTOUCH_EEPROM_START_ADR + 0
00110 #define MTOUCH_EEPROM_pDEB_ADRH MTOUCH_EEPROM_START_ADR + 1
00111 #define MTOUCH_EEPROM_rDEB_ADRL MTOUCH_EEPROM_START_ADR + 2
00112 #define MTOUCH_EEPROM_rDEB_ADRH MTOUCH_EEPROM_START_ADR + 3
00113 #define MTOUCH_EEPROM_JITTER_ADR MTOUCH_EEPROM_START_ADR + 4
00114
00115
00116 #define MTOUCH_EEPROM_BLWEIGHT_ADR MTOUCH_EEPROM_START_ADR + 5
00117 #define MTOUCH_EEPROM_BLRATE_ADRL MTOUCH_EEPROM_START_ADR + 6
00118 #define MTOUCH_EEPROM_BLRATE_ADRH MTOUCH_EEPROM_START_ADR + 7
00119
00120
00121 #define MTOUCH_EEPROM_pTIMEOUT_ADRL MTOUCH_EEPROM_START_ADR + 8
00122 #define MTOUCH_EEPROM_pTIMEOUT_ADRH MTOUCH_EEPROM_START_ADR + 9
00123 #define MTOUCH_EEPROM_SpS_ADRL MTOUCH_EEPROM_START_ADR + 10
00124 #define MTOUCH_EEPROM_SpS_ADRH MTOUCH_EEPROM_START_ADR + 11
00125 #define MTOUCH_EEPROM_SCALE_ADR MTOUCH_EEPROM_START_ADR + 12
00126 #define MTOUCH_EEPROM_DECSTEP_ADRL MTOUCH_EEPROM_START_ADR + 13
00127 #define MTOUCH_EEPROM_DECSTEP_ADRH MTOUCH_EEPROM_START_ADR + 14
00128
00129
00130 #define MTOUCH_EEPROM_pTHRESH_ADRL MTOUCH_EEPROM_SENS_ADR
00131 #define MTOUCH_EEPROM_pTHRESH_ADRH MTOUCH_EEPROM_SENS_ADR + 1
00132 #define MTOUCH_EEPROM_rTHRESH_ADRL MTOUCH_EEPROM_SENS_ADR + 2
00133 #define MTOUCH_EEPROM_rTHRESH_ADRH MTOUCH_EEPROM_SENS_ADR + 3
00134
00135
00136
00137
00138
00139 #define MTOUCH_pTHRESH(index) __paste(THRESHOLD_PRESS_SENSOR, index)
00140 #define MTOUCH_rTHRESH(index) __paste(THRESHOLD_RELEASE_SENSOR, index)
00141
00142 #define MTOUCH_EEPROM_THRESH(index) ,(uint8_t)(MTOUCH_pTHRESH(index) & 0xFF), \
00143 (uint8_t)(MTOUCH_pTHRESH(index) >> 8), \
00144 (uint8_t)(MTOUCH_rTHRESH(index) & 0xFF), \
00145 (uint8_t)(MTOUCH_rTHRESH(index) >> 8)
00146
00147 #define MTOUCH_EEPROM_THRESH0 MTOUCH_EEPROM_THRESH(0)
00148 #define MTOUCH_EEPROM_THRESH1 MTOUCH_EEPROM_THRESH(1)
00149 #define MTOUCH_EEPROM_THRESH2 MTOUCH_EEPROM_THRESH(2)
00150 #define MTOUCH_EEPROM_THRESH3 MTOUCH_EEPROM_THRESH(3)
00151 #define MTOUCH_EEPROM_THRESH4 MTOUCH_EEPROM_THRESH(4)
00152 #define MTOUCH_EEPROM_THRESH5 MTOUCH_EEPROM_THRESH(5)
00153 #define MTOUCH_EEPROM_THRESH6 MTOUCH_EEPROM_THRESH(6)
00154 #define MTOUCH_EEPROM_THRESH7 MTOUCH_EEPROM_THRESH(7)
00155 #define MTOUCH_EEPROM_THRESH8 MTOUCH_EEPROM_THRESH(8)
00156 #define MTOUCH_EEPROM_THRESH9 MTOUCH_EEPROM_THRESH(9)
00157 #define MTOUCH_EEPROM_THRESH10 MTOUCH_EEPROM_THRESH(10)
00158 #define MTOUCH_EEPROM_THRESH11 MTOUCH_EEPROM_THRESH(11)
00159 #define MTOUCH_EEPROM_THRESH12 MTOUCH_EEPROM_THRESH(12)
00160 #define MTOUCH_EEPROM_THRESH13 MTOUCH_EEPROM_THRESH(13)
00161 #define MTOUCH_EEPROM_THRESH14 MTOUCH_EEPROM_THRESH(14)
00162 #define MTOUCH_EEPROM_THRESH15 MTOUCH_EEPROM_THRESH(15)
00163 #define MTOUCH_EEPROM_THRESH16 MTOUCH_EEPROM_THRESH(16)
00164 #define MTOUCH_EEPROM_THRESH17 MTOUCH_EEPROM_THRESH(17)
00165 #define MTOUCH_EEPROM_THRESH18 MTOUCH_EEPROM_THRESH(18)
00166 #define MTOUCH_EEPROM_THRESH19 MTOUCH_EEPROM_THRESH(19)
00167 #define MTOUCH_EEPROM_THRESH20 MTOUCH_EEPROM_THRESH(20)
00168 #define MTOUCH_EEPROM_THRESH21 MTOUCH_EEPROM_THRESH(21)
00169 #define MTOUCH_EEPROM_THRESH22 MTOUCH_EEPROM_THRESH(22)
00170 #define MTOUCH_EEPROM_THRESH23 MTOUCH_EEPROM_THRESH(23)
00171 #define MTOUCH_EEPROM_THRESH24 MTOUCH_EEPROM_THRESH(24)
00172 #define MTOUCH_EEPROM_THRESH25 MTOUCH_EEPROM_THRESH(25)
00173 #define MTOUCH_EEPROM_THRESH26 MTOUCH_EEPROM_THRESH(26)
00174 #define MTOUCH_EEPROM_THRESH27 MTOUCH_EEPROM_THRESH(27)
00175 #define MTOUCH_EEPROM_THRESH28 MTOUCH_EEPROM_THRESH(28)
00176 #define MTOUCH_EEPROM_THRESH29 MTOUCH_EEPROM_THRESH(29)
00177
00178 #define MTOUCH_EEPROM_THRESHOLDS MTOUCH_EEPROM_THRESH0 \
00179 MTOUCH_EEPROM_THRESH1 \
00180 MTOUCH_EEPROM_THRESH2 \
00181 MTOUCH_EEPROM_THRESH3 \
00182 MTOUCH_EEPROM_THRESH4 \
00183 MTOUCH_EEPROM_THRESH5 \
00184 MTOUCH_EEPROM_THRESH6 \
00185 MTOUCH_EEPROM_THRESH7 \
00186 MTOUCH_EEPROM_THRESH8 \
00187 MTOUCH_EEPROM_THRESH9 \
00188 MTOUCH_EEPROM_THRESH10 \
00189 MTOUCH_EEPROM_THRESH11 \
00190 MTOUCH_EEPROM_THRESH12 \
00191 MTOUCH_EEPROM_THRESH13 \
00192 MTOUCH_EEPROM_THRESH14 \
00193 MTOUCH_EEPROM_THRESH15 \
00194 MTOUCH_EEPROM_THRESH16 \
00195 MTOUCH_EEPROM_THRESH17 \
00196 MTOUCH_EEPROM_THRESH18 \
00197 MTOUCH_EEPROM_THRESH19 \
00198 MTOUCH_EEPROM_THRESH20 \
00199 MTOUCH_EEPROM_THRESH21 \
00200 MTOUCH_EEPROM_THRESH22 \
00201 MTOUCH_EEPROM_THRESH23 \
00202 MTOUCH_EEPROM_THRESH24 \
00203 MTOUCH_EEPROM_THRESH25 \
00204 MTOUCH_EEPROM_THRESH26 \
00205 MTOUCH_EEPROM_THRESH27 \
00206 MTOUCH_EEPROM_THRESH28 \
00207 MTOUCH_EEPROM_THRESH29
00208
00209 #if MTOUCH_NUMBER_SENSORS < 30
00210 #undef MTOUCH_EEPROM_THRESH29
00211 #define MTOUCH_EEPROM_THRESH29
00212 #endif
00213 #if MTOUCH_NUMBER_SENSORS < 29
00214 #undef MTOUCH_EEPROM_THRESH28
00215 #define MTOUCH_EEPROM_THRESH28
00216 #endif
00217 #if MTOUCH_NUMBER_SENSORS < 28
00218 #undef MTOUCH_EEPROM_THRESH27
00219 #define MTOUCH_EEPROM_THRESH27
00220 #endif
00221 #if MTOUCH_NUMBER_SENSORS < 27
00222 #undef MTOUCH_EEPROM_THRESH26
00223 #define MTOUCH_EEPROM_THRESH26
00224 #endif
00225 #if MTOUCH_NUMBER_SENSORS < 26
00226 #undef MTOUCH_EEPROM_THRESH25
00227 #define MTOUCH_EEPROM_THRESH25
00228 #endif
00229 #if MTOUCH_NUMBER_SENSORS < 25
00230 #undef MTOUCH_EEPROM_THRESH24
00231 #define MTOUCH_EEPROM_THRESH24
00232 #endif
00233 #if MTOUCH_NUMBER_SENSORS < 24
00234 #undef MTOUCH_EEPROM_THRESH23
00235 #define MTOUCH_EEPROM_THRESH23
00236 #endif
00237 #if MTOUCH_NUMBER_SENSORS < 23
00238 #undef MTOUCH_EEPROM_THRESH22
00239 #define MTOUCH_EEPROM_THRESH22
00240 #endif
00241 #if MTOUCH_NUMBER_SENSORS < 22
00242 #undef MTOUCH_EEPROM_THRESH21
00243 #define MTOUCH_EEPROM_THRESH21
00244 #endif
00245 #if MTOUCH_NUMBER_SENSORS < 21
00246 #undef MTOUCH_EEPROM_THRESH20
00247 #define MTOUCH_EEPROM_THRESH20
00248 #endif
00249 #if MTOUCH_NUMBER_SENSORS < 20
00250 #undef MTOUCH_EEPROM_THRESH19
00251 #define MTOUCH_EEPROM_THRESH19
00252 #endif
00253 #if MTOUCH_NUMBER_SENSORS < 19
00254 #undef MTOUCH_EEPROM_THRESH18
00255 #define MTOUCH_EEPROM_THRESH18
00256 #endif
00257 #if MTOUCH_NUMBER_SENSORS < 18
00258 #undef MTOUCH_EEPROM_THRESH17
00259 #define MTOUCH_EEPROM_THRESH17
00260 #endif
00261 #if MTOUCH_NUMBER_SENSORS < 17
00262 #undef MTOUCH_EEPROM_THRESH16
00263 #define MTOUCH_EEPROM_THRESH16
00264 #endif
00265 #if MTOUCH_NUMBER_SENSORS < 16
00266 #undef MTOUCH_EEPROM_THRESH15
00267 #define MTOUCH_EEPROM_THRESH15
00268 #endif
00269 #if MTOUCH_NUMBER_SENSORS < 15
00270 #undef MTOUCH_EEPROM_THRESH14
00271 #define MTOUCH_EEPROM_THRESH14
00272 #endif
00273 #if MTOUCH_NUMBER_SENSORS < 14
00274 #undef MTOUCH_EEPROM_THRESH13
00275 #define MTOUCH_EEPROM_THRESH13
00276 #endif
00277 #if MTOUCH_NUMBER_SENSORS < 13
00278 #undef MTOUCH_EEPROM_THRESH12
00279 #define MTOUCH_EEPROM_THRESH12
00280 #endif
00281 #if MTOUCH_NUMBER_SENSORS < 12
00282 #undef MTOUCH_EEPROM_THRESH11
00283 #define MTOUCH_EEPROM_THRESH11
00284 #endif
00285 #if MTOUCH_NUMBER_SENSORS < 11
00286 #undef MTOUCH_EEPROM_THRESH10
00287 #define MTOUCH_EEPROM_THRESH10
00288 #endif
00289 #if MTOUCH_NUMBER_SENSORS < 10
00290 #undef MTOUCH_EEPROM_THRESH9
00291 #define MTOUCH_EEPROM_THRESH9
00292 #endif
00293 #if MTOUCH_NUMBER_SENSORS < 9
00294 #undef MTOUCH_EEPROM_THRESH8
00295 #define MTOUCH_EEPROM_THRESH8
00296 #endif
00297 #if MTOUCH_NUMBER_SENSORS < 8
00298 #undef MTOUCH_EEPROM_THRESH7
00299 #define MTOUCH_EEPROM_THRESH7
00300 #endif
00301 #if MTOUCH_NUMBER_SENSORS < 7
00302 #undef MTOUCH_EEPROM_THRESH6
00303 #define MTOUCH_EEPROM_THRESH6
00304 #endif
00305 #if MTOUCH_NUMBER_SENSORS < 6
00306 #undef MTOUCH_EEPROM_THRESH5
00307 #define MTOUCH_EEPROM_THRESH5
00308 #endif
00309 #if MTOUCH_NUMBER_SENSORS < 5
00310 #undef MTOUCH_EEPROM_THRESH4
00311 #define MTOUCH_EEPROM_THRESH4
00312 #endif
00313 #if MTOUCH_NUMBER_SENSORS < 4
00314 #undef MTOUCH_EEPROM_THRESH3
00315 #define MTOUCH_EEPROM_THRESH3
00316 #endif
00317 #if MTOUCH_NUMBER_SENSORS < 3
00318 #undef MTOUCH_EEPROM_THRESH2
00319 #define MTOUCH_EEPROM_THRESH2
00320 #endif
00321 #if MTOUCH_NUMBER_SENSORS < 2
00322 #undef MTOUCH_EEPROM_THRESH1
00323 #define MTOUCH_EEPROM_THRESH1
00324 #endif
00325
00326
00327
00328 #define MTOUCH_EEPROM_pTHRESHOLD(index) (uint16_t)((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_pTHRESH_ADRH + (MTOUCH_EEPROM_SENS_SIZE*index))) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_pTHRESH_ADRL + (MTOUCH_EEPROM_SENS_SIZE*index))
00329 #define MTOUCH_EEPROM_rTHRESHOLD(index) (uint16_t)((uint16_t)(MTOUCH_EEPROM_read(MTOUCH_EEPROM_rTHRESH_ADRH + (MTOUCH_EEPROM_SENS_SIZE*index))) << 8) + MTOUCH_EEPROM_read(MTOUCH_EEPROM_rTHRESH_ADRL + (MTOUCH_EEPROM_SENS_SIZE*index))
00330
00331
00332
00333 #endif