309 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			309 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * \file
 | |
|  *
 | |
|  * \brief Increment macro.
 | |
|  *
 | |
|  * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
 | |
|  *
 | |
|  * \asf_license_start
 | |
|  *
 | |
|  * \page License
 | |
|  *
 | |
|  * Subject to your compliance with these terms, you may use Microchip
 | |
|  * software and any derivatives exclusively with Microchip products.
 | |
|  * It is your responsibility to comply with third party license terms applicable
 | |
|  * to your use of third party software (including open source software) that
 | |
|  * may accompany Microchip software.
 | |
|  *
 | |
|  * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
 | |
|  * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
 | |
|  * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
 | |
|  * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
 | |
|  * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
 | |
|  * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
 | |
|  * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
 | |
|  * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE FULLEST EXTENT
 | |
|  * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
 | |
|  * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
 | |
|  * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
 | |
|  *
 | |
|  * \asf_license_stop
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _UTILS_INCREMENT_MACRO_H
 | |
| #define _UTILS_INCREMENT_MACRO_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  * \brief Compile time increment, result value is entire integer literal
 | |
|  *
 | |
|  * \param[in] val - value to be incremented (254 max)
 | |
|  */
 | |
| #define INC_VALUE(val) SP_INC_##val
 | |
| 
 | |
| // Preprocessor increment implementation
 | |
| #define SP_INC_0 1
 | |
| #define SP_INC_1 2
 | |
| #define SP_INC_2 3
 | |
| #define SP_INC_3 4
 | |
| #define SP_INC_4 5
 | |
| #define SP_INC_5 6
 | |
| #define SP_INC_6 7
 | |
| #define SP_INC_7 8
 | |
| #define SP_INC_8 9
 | |
| #define SP_INC_9 10
 | |
| #define SP_INC_10 11
 | |
| #define SP_INC_11 12
 | |
| #define SP_INC_12 13
 | |
| #define SP_INC_13 14
 | |
| #define SP_INC_14 15
 | |
| #define SP_INC_15 16
 | |
| #define SP_INC_16 17
 | |
| #define SP_INC_17 18
 | |
| #define SP_INC_18 19
 | |
| #define SP_INC_19 20
 | |
| #define SP_INC_20 21
 | |
| #define SP_INC_21 22
 | |
| #define SP_INC_22 23
 | |
| #define SP_INC_23 24
 | |
| #define SP_INC_24 25
 | |
| #define SP_INC_25 26
 | |
| #define SP_INC_26 27
 | |
| #define SP_INC_27 28
 | |
| #define SP_INC_28 29
 | |
| #define SP_INC_29 30
 | |
| #define SP_INC_30 31
 | |
| #define SP_INC_31 32
 | |
| #define SP_INC_32 33
 | |
| #define SP_INC_33 34
 | |
| #define SP_INC_34 35
 | |
| #define SP_INC_35 36
 | |
| #define SP_INC_36 37
 | |
| #define SP_INC_37 38
 | |
| #define SP_INC_38 39
 | |
| #define SP_INC_39 40
 | |
| #define SP_INC_40 41
 | |
| #define SP_INC_41 42
 | |
| #define SP_INC_42 43
 | |
| #define SP_INC_43 44
 | |
| #define SP_INC_44 45
 | |
| #define SP_INC_45 46
 | |
| #define SP_INC_46 47
 | |
| #define SP_INC_47 48
 | |
| #define SP_INC_48 49
 | |
| #define SP_INC_49 50
 | |
| #define SP_INC_50 51
 | |
| #define SP_INC_51 52
 | |
| #define SP_INC_52 53
 | |
| #define SP_INC_53 54
 | |
| #define SP_INC_54 55
 | |
| #define SP_INC_55 56
 | |
| #define SP_INC_56 57
 | |
| #define SP_INC_57 58
 | |
| #define SP_INC_58 59
 | |
| #define SP_INC_59 60
 | |
| #define SP_INC_60 61
 | |
| #define SP_INC_61 62
 | |
| #define SP_INC_62 63
 | |
| #define SP_INC_63 64
 | |
| #define SP_INC_64 65
 | |
| #define SP_INC_65 66
 | |
| #define SP_INC_66 67
 | |
| #define SP_INC_67 68
 | |
| #define SP_INC_68 69
 | |
| #define SP_INC_69 70
 | |
| #define SP_INC_70 71
 | |
| #define SP_INC_71 72
 | |
| #define SP_INC_72 73
 | |
| #define SP_INC_73 74
 | |
| #define SP_INC_74 75
 | |
| #define SP_INC_75 76
 | |
| #define SP_INC_76 77
 | |
| #define SP_INC_77 78
 | |
| #define SP_INC_78 79
 | |
| #define SP_INC_79 80
 | |
| #define SP_INC_80 81
 | |
| #define SP_INC_81 82
 | |
| #define SP_INC_82 83
 | |
| #define SP_INC_83 84
 | |
| #define SP_INC_84 85
 | |
| #define SP_INC_85 86
 | |
| #define SP_INC_86 87
 | |
| #define SP_INC_87 88
 | |
| #define SP_INC_88 89
 | |
| #define SP_INC_89 90
 | |
| #define SP_INC_90 91
 | |
| #define SP_INC_91 92
 | |
| #define SP_INC_92 93
 | |
| #define SP_INC_93 94
 | |
| #define SP_INC_94 95
 | |
| #define SP_INC_95 96
 | |
| #define SP_INC_96 97
 | |
| #define SP_INC_97 98
 | |
| #define SP_INC_98 99
 | |
| #define SP_INC_99 100
 | |
| #define SP_INC_100 101
 | |
| #define SP_INC_101 102
 | |
| #define SP_INC_102 103
 | |
| #define SP_INC_103 104
 | |
| #define SP_INC_104 105
 | |
| #define SP_INC_105 106
 | |
| #define SP_INC_106 107
 | |
| #define SP_INC_107 108
 | |
| #define SP_INC_108 109
 | |
| #define SP_INC_109 110
 | |
| #define SP_INC_110 111
 | |
| #define SP_INC_111 112
 | |
| #define SP_INC_112 113
 | |
| #define SP_INC_113 114
 | |
| #define SP_INC_114 115
 | |
| #define SP_INC_115 116
 | |
| #define SP_INC_116 117
 | |
| #define SP_INC_117 118
 | |
| #define SP_INC_118 119
 | |
| #define SP_INC_119 120
 | |
| #define SP_INC_120 121
 | |
| #define SP_INC_121 122
 | |
| #define SP_INC_122 123
 | |
| #define SP_INC_123 124
 | |
| #define SP_INC_124 125
 | |
| #define SP_INC_125 126
 | |
| #define SP_INC_126 127
 | |
| #define SP_INC_127 128
 | |
| #define SP_INC_128 129
 | |
| #define SP_INC_129 130
 | |
| #define SP_INC_130 131
 | |
| #define SP_INC_131 132
 | |
| #define SP_INC_132 133
 | |
| #define SP_INC_133 134
 | |
| #define SP_INC_134 135
 | |
| #define SP_INC_135 136
 | |
| #define SP_INC_136 137
 | |
| #define SP_INC_137 138
 | |
| #define SP_INC_138 139
 | |
| #define SP_INC_139 140
 | |
| #define SP_INC_140 141
 | |
| #define SP_INC_141 142
 | |
| #define SP_INC_142 143
 | |
| #define SP_INC_143 144
 | |
| #define SP_INC_144 145
 | |
| #define SP_INC_145 146
 | |
| #define SP_INC_146 147
 | |
| #define SP_INC_147 148
 | |
| #define SP_INC_148 149
 | |
| #define SP_INC_149 150
 | |
| #define SP_INC_150 151
 | |
| #define SP_INC_151 152
 | |
| #define SP_INC_152 153
 | |
| #define SP_INC_153 154
 | |
| #define SP_INC_154 155
 | |
| #define SP_INC_155 156
 | |
| #define SP_INC_156 157
 | |
| #define SP_INC_157 158
 | |
| #define SP_INC_158 159
 | |
| #define SP_INC_159 160
 | |
| #define SP_INC_160 161
 | |
| #define SP_INC_161 162
 | |
| #define SP_INC_162 163
 | |
| #define SP_INC_163 164
 | |
| #define SP_INC_164 165
 | |
| #define SP_INC_165 166
 | |
| #define SP_INC_166 167
 | |
| #define SP_INC_167 168
 | |
| #define SP_INC_168 169
 | |
| #define SP_INC_169 170
 | |
| #define SP_INC_170 171
 | |
| #define SP_INC_171 172
 | |
| #define SP_INC_172 173
 | |
| #define SP_INC_173 174
 | |
| #define SP_INC_174 175
 | |
| #define SP_INC_175 176
 | |
| #define SP_INC_176 177
 | |
| #define SP_INC_177 178
 | |
| #define SP_INC_178 179
 | |
| #define SP_INC_179 180
 | |
| #define SP_INC_180 181
 | |
| #define SP_INC_181 182
 | |
| #define SP_INC_182 183
 | |
| #define SP_INC_183 184
 | |
| #define SP_INC_184 185
 | |
| #define SP_INC_185 186
 | |
| #define SP_INC_186 187
 | |
| #define SP_INC_187 188
 | |
| #define SP_INC_188 189
 | |
| #define SP_INC_189 190
 | |
| #define SP_INC_190 191
 | |
| #define SP_INC_191 192
 | |
| #define SP_INC_192 193
 | |
| #define SP_INC_193 194
 | |
| #define SP_INC_194 195
 | |
| #define SP_INC_195 196
 | |
| #define SP_INC_196 197
 | |
| #define SP_INC_197 198
 | |
| #define SP_INC_198 199
 | |
| #define SP_INC_199 200
 | |
| #define SP_INC_200 201
 | |
| #define SP_INC_201 202
 | |
| #define SP_INC_202 203
 | |
| #define SP_INC_203 204
 | |
| #define SP_INC_204 205
 | |
| #define SP_INC_205 206
 | |
| #define SP_INC_206 207
 | |
| #define SP_INC_207 208
 | |
| #define SP_INC_208 209
 | |
| #define SP_INC_209 210
 | |
| #define SP_INC_210 211
 | |
| #define SP_INC_211 212
 | |
| #define SP_INC_212 213
 | |
| #define SP_INC_213 214
 | |
| #define SP_INC_214 215
 | |
| #define SP_INC_215 216
 | |
| #define SP_INC_216 217
 | |
| #define SP_INC_217 218
 | |
| #define SP_INC_218 219
 | |
| #define SP_INC_219 220
 | |
| #define SP_INC_220 221
 | |
| #define SP_INC_221 222
 | |
| #define SP_INC_222 223
 | |
| #define SP_INC_223 224
 | |
| #define SP_INC_224 225
 | |
| #define SP_INC_225 226
 | |
| #define SP_INC_226 227
 | |
| #define SP_INC_227 228
 | |
| #define SP_INC_228 229
 | |
| #define SP_INC_229 230
 | |
| #define SP_INC_230 231
 | |
| #define SP_INC_231 232
 | |
| #define SP_INC_232 233
 | |
| #define SP_INC_233 234
 | |
| #define SP_INC_234 235
 | |
| #define SP_INC_235 236
 | |
| #define SP_INC_236 237
 | |
| #define SP_INC_237 238
 | |
| #define SP_INC_238 239
 | |
| #define SP_INC_239 240
 | |
| #define SP_INC_240 241
 | |
| #define SP_INC_241 242
 | |
| #define SP_INC_242 243
 | |
| #define SP_INC_243 244
 | |
| #define SP_INC_244 245
 | |
| #define SP_INC_245 246
 | |
| #define SP_INC_246 247
 | |
| #define SP_INC_247 248
 | |
| #define SP_INC_248 249
 | |
| #define SP_INC_249 250
 | |
| #define SP_INC_250 251
 | |
| #define SP_INC_251 252
 | |
| #define SP_INC_252 253
 | |
| #define SP_INC_253 254
 | |
| #define SP_INC_254 255
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif /* _UTILS_INCREMENT_MACRO_H */
 |