23 #define getTimerPrescale(TxCONbits) getTimerPrescaleBits(TxCONbits.TCKPS) 25 #define MS_TO_TICKS(ms, pre) ((FCY/1000L/(pre))*(ms)) 28 uint16_t
msToU16Ticks(uint16_t u16_ms, uint16_t u16_pre);
29 uint16_t
usToU16Ticks(uint16_t u16_us, uint16_t u16_pre);
30 uint32_t
usToU32Ticks(uint32_t u32_us, uint16_t u16_pre);
31 uint32_t
ticksToMs (uint32_t u32_ticks, uint16_t u16_tmrPre);
32 uint32_t
ticksToUs (uint32_t u32_ticks, uint16_t u16_tmrPre);
33 uint32_t
ticksToNs (uint32_t u32_ticks, uint16_t u16_tmrPre);
36 uint32_t
computeDeltaTicksLong(uint16_t u16_start, uint16_t u16_end, uint16_t u16_tmrPR, uint16_t u16_oflows);
37 uint16_t
computeDeltaTicks(uint16_t u16_start, uint16_t u16_end, uint16_t u16_tmrPR);
53 #define T1_OFF_ON_MASK (~T1_ON) 55 #define T1_IDLE_STOP 0x2000 56 #define T1_IDLE_CON 0x0000 57 #define T1_IDLE_MASK (~T1_IDLE_STOP) 59 #define T1_GATE_ON 0x0040 60 #define T1_GATE_OFF 0x0000 61 #define T1_GATE_MASK (~T1_GATE_ON) 63 #define T1_PS_1_1 0x0000 64 #define T1_PS_1_8 0x0010 65 #define T1_PS_1_64 0x0020 66 #define T1_PS_1_256 0x0030 67 #define T1_PS_MASK (~T1_PS_1_256) 69 #define T1_SYNC_EXT_ON 0x0004 70 #define T1_SYNC_EXT_OFF 0x0000 71 #define T1_SYNC_EXT_MASK (~T1_SYNC_EXT_ON) 73 #define T1_SOURCE_EXT 0x0002 74 #define T1_SOURCE_INT 0x0000 75 #define T1_SOURCE_MASK (~T1_SOURCE_EXT) 81 #define T2_OFF_ON_MASK (~T2_ON) 83 #define T2_IDLE_STOP 0x2000 84 #define T2_IDLE_CON 0x0000 85 #define T2_IDLE_MASK (~T2_IDLE_STOP) 87 #define T2_GATE_ON 0x0040 88 #define T2_GATE_OFF 0x0000 89 #define T2_GATE_MASK (~T2_GATE_ON) 91 #define T2_PS_1_1 0x0000 92 #define T2_PS_1_8 0x0010 93 #define T2_PS_1_64 0x0020 94 #define T2_PS_1_256 0x0030 95 #define T2_PS_MASK (~T2_PS_1_256) 97 #define T2_32BIT_MODE_ON 0x0008 98 #define T2_32BIT_MODE_OFF 0x0000 99 #define T2_32BIT_MODE_MASK (~T2_32BIT_MODE_ON) 101 #define T2_SOURCE_EXT 0x0002 102 #define T2_SOURCE_INT 0x0000 103 #define T2_SOURCE_MASK (~T2_SOURCE_EXT) 109 #define T3_OFF 0x0000 110 #define T3_OFF_ON_MASK (~T3_ON) 112 #define T3_IDLE_STOP 0x2000 113 #define T3_IDLE_CON 0x0000 114 #define T3_IDLE_MASK (~T3_IDLE_STOP) 116 #define T3_GATE_ON 0x0040 117 #define T3_GATE_OFF 0x0000 118 #define T3_GATE_MASK (~T3_GATE_ON) 120 #define T3_PS_1_1 0x0000 121 #define T3_PS_1_8 0x0010 122 #define T3_PS_1_64 0x0020 123 #define T3_PS_1_256 0x0030 124 #define T3_PS_MASK (~T3_PS_1_256) 126 #define T3_SOURCE_EXT 0x0002 127 #define T3_SOURCE_INT 0x0000 128 #define T3_SOURCE_MASK (~T3_SOURCE_EXT) 134 #define T4_OFF 0x0000 135 #define T4_OFF_ON_MASK (~T4_ON) 137 #define T4_IDLE_STOP 0x2000 138 #define T4_IDLE_CON 0x0000 139 #define T4_IDLE_MASK (~T4_IDLE_STOP) 141 #define T4_GATE_ON 0x0040 142 #define T4_GATE_OFF 0x0000 143 #define T4_GATE_MASK (~T4_GATE_ON) 145 #define T4_PS_1_1 0x0000 146 #define T4_PS_1_8 0x0010 147 #define T4_PS_1_64 0x0020 148 #define T4_PS_1_256 0x0030 149 #define T4_PS_MASK (~T4_PS_1_256) 151 #define T4_32BIT_MODE_ON 0x0008 152 #define T4_32BIT_MODE_OFF 0x0000 153 #define T4_32BIT_MODE_MASK (~T4_32BIT_MODE_ON) 155 #define T4_SOURCE_EXT 0x0002 156 #define T4_SOURCE_INT 0x0000 157 #define T4_SOURCE_MASK (~T4_SOURCE_EXT) 163 #define T5_OFF 0x0000 164 #define T5_OFF_ON_MASK (~T5_ON) 166 #define T5_IDLE_STOP 0x2000 167 #define T5_IDLE_CON 0x0000 168 #define T5_IDLE_MASK (~T5_IDLE_STOP) 170 #define T5_GATE_ON 0x0040 171 #define T5_GATE_OFF 0x0000 172 #define T5_GATE_MASK (~T5_GATE_ON) 174 #define T5_PS_1_1 0x0000 175 #define T5_PS_1_8 0x0010 176 #define T5_PS_1_64 0x0020 177 #define T5_PS_1_256 0x0030 178 #define T5_PS_MASK (~T5_PS_1_256) 180 #define T5_SOURCE_EXT 0x0002 181 #define T5_SOURCE_INT 0x0000 182 #define T5_SOURCE_MASK (~T5_SOURCE_EXT) 188 #define T6_OFF 0x0000 189 #define T6_OFF_ON_MASK (~T6_ON) 191 #define T6_IDLE_STOP 0x2000 192 #define T6_IDLE_CON 0x0000 193 #define T6_IDLE_MASK (~T6_IDLE_STOP) 195 #define T6_GATE_ON 0x0040 196 #define T6_GATE_OFF 0x0000 197 #define T6_GATE_MASK (~T6_GATE_ON) 199 #define T6_PS_1_1 0x0000 200 #define T6_PS_1_8 0x0010 201 #define T6_PS_1_64 0x0020 202 #define T6_PS_1_256 0x0030 203 #define T6_PS_MASK (~T6_PS_1_256) 205 #define T6_32BIT_MODE_ON 0x0008 206 #define T6_32BIT_MODE_OFF 0x0000 207 #define T6_32BIT_MODE_MASK (~T6_32BIT_MODE_ON) 209 #define T6_SOURCE_EXT 0x0002 210 #define T6_SOURCE_INT 0x0000 211 #define T6_SOURCE_MASK (~T6_SOURCE_EXT) 217 #define T7_OFF 0x0000 218 #define T7_OFF_ON_MASK (~T7_ON) 220 #define T7_IDLE_STOP 0x2000 221 #define T7_IDLE_CON 0x0000 222 #define T7_IDLE_MASK (~T7_IDLE_STOP) 224 #define T7_GATE_ON 0x0040 225 #define T7_GATE_OFF 0x0000 226 #define T7_GATE_MASK (~T7_GATE_ON) 228 #define T7_PS_1_1 0x0000 229 #define T7_PS_1_8 0x0010 230 #define T7_PS_1_64 0x0020 231 #define T7_PS_1_256 0x0030 232 #define T7_PS_MASK (~T7_PS_1_256) 234 #define T7_SOURCE_EXT 0x0002 235 #define T7_SOURCE_INT 0x0000 236 #define T7_SOURCE_MASK (~T7_SOURCE_EXT) 242 #define T8_OFF 0x0000 243 #define T8_OFF_ON_MASK (~T8_ON) 245 #define T8_IDLE_STOP 0x2000 246 #define T8_IDLE_CON 0x0000 247 #define T8_IDLE_MASK (~T8_IDLE_STOP) 249 #define T8_GATE_ON 0x0040 250 #define T8_GATE_OFF 0x0000 251 #define T8_GATE_MASK (~T8_GATE_ON) 253 #define T8_PS_1_1 0x0000 254 #define T8_PS_1_8 0x0010 255 #define T8_PS_1_64 0x0020 256 #define T8_PS_1_256 0x0030 257 #define T8_PS_MASK (~T8_PS_1_256) 259 #define T8_32BIT_MODE_ON 0x0008 260 #define T8_32BIT_MODE_OFF 0x0000 261 #define T8_32BIT_MODE_MASK (~T8_32BIT_MODE_ON) 263 #define T8_SOURCE_EXT 0x0002 264 #define T8_SOURCE_INT 0x0000 265 #define T8_SOURCE_MASK (~T8_SOURCE_EXT) 271 #define T9_OFF 0x0000 272 #define T9_OFF_ON_MASK (~T9_ON) 274 #define T9_IDLE_STOP 0x2000 275 #define T9_IDLE_CON 0x0000 276 #define T9_IDLE_MASK (~T9_IDLE_STOP) 278 #define T9_GATE_ON 0x0040 279 #define T9_GATE_OFF 0x0000 280 #define T9_GATE_MASK (~T9_GATE_ON) 282 #define T9_PS_1_1 0x0000 283 #define T9_PS_1_8 0x0010 284 #define T9_PS_1_64 0x0020 285 #define T9_PS_1_256 0x0030 286 #define T9_PS_MASK (~T9_PS_1_256) 288 #define T9_SOURCE_EXT 0x0002 289 #define T9_SOURCE_INT 0x0000 290 #define T9_SOURCE_MASK (~T9_SOURCE_EXT) 302 #if (defined(__dsPIC33E__) || defined(__PIC24E__)) 303 #define IC_IDLE_STOP 0x2000 304 #define IC_IDLE_CON 0x0000 305 #define IC_IDLE_MASK (~IC_IDLE_STOP) 307 #define IC_FP_SRC (7 << 10) 308 #define IC_TIMER1_SRC (4 << 10) 309 #define IC_TIMER5_SRC (3 << 10) 310 #define IC_TIMER4_SRC (2 << 10) 311 #define IC_TIMER2_SRC (1 << 10) 312 #define IC_TIMER3_SRC 0x0000 313 #define IC_TIMER_SRC_MASK (~ (7 << 10) ) 315 #define IC_INT_4CAPTURE 0x0060 316 #define IC_INT_3CAPTURE 0x0040 317 #define IC_INT_2CAPTURE 0x0020 318 #define IC_INT_1CAPTURE 0x0000 319 #define IC_INT_CAPTURE_MASK (~IC_INT_4CAPTURE) 321 #define IC_INTERRUPT 0x0007 322 #define IC_EVERY_16_RISE_EDGE 0x0005 323 #define IC_EVERY_4_RISE_EDGE 0x0004 324 #define IC_EVERY_RISE_EDGE 0x0003 325 #define IC_EVERY_FALL_EDGE 0x0002 326 #define IC_EVERY_EDGE 0x0001 327 #define IC_INPUTCAP_OFF 0x0000 328 #define IC_CAPTURE_MODE_MASK (~IC_INTERRUPT) 331 #define IC_IC32_ON (0x01 << 8) 332 #define IC_IC32_OFF (0x00 << 8) 333 #define IC_TRIG_MODE (0x01 << 7) 334 #define IC_SYNC_MODE (0x00 << 7) 338 #define IC_SYNCSEL_NOSYNC 0x00 339 #define IC_SYNCSEL_OC1 0x01 340 #define IC_SYNCSEL_OC2 0x02 341 #define IC_SYNCSEL_OC3 0x03 342 #define IC_SYNCSEL_OC4 0x04 343 #define IC_SYNCSEL_PTGO 0x0A 344 #define IC_SYNCSEL_TIMER1 0x0B 345 #define IC_SYNCSEL_TIMER2 0x0C 346 #define IC_SYNCSEL_TIMER3 0x0D 347 #define IC_SYNCSEL_TIMER4 0x0E 348 #define IC_SYNCSEL_TIMER5 0x0F 349 #define IC_SYNCSEL_IC1 0x10 350 #define IC_SYNCSEL_IC2 0x11 351 #define IC_SYNCSEL_IC3 0x12 352 #define IC_SYNCSEL_IC4 0x13 353 #define IC_SYNCSEL_CMP1 0x18 354 #define IC_SYNCSEL_CMP2 0x19 355 #define IC_SYNCSEL_CMP3 0x1A 356 #define IC_SYNCSEL_ADC1 0x1B 357 #define IC_SYNCSEL_CTMU 0x1C 362 #define IC_IDLE_STOP 0x2000 363 #define IC_IDLE_CON 0x0000 364 #define IC_IDLE_MASK (~IC_IDLE_STOP) 366 #define IC_TIMER2_SRC 0x0080 367 #define IC_TIMER3_SRC 0x0000 368 #define IC_TIMER_SRC_MASK (~IC_TIMER2_SRC) 370 #define IC_INT_4CAPTURE 0x0060 371 #define IC_INT_3CAPTURE 0x0040 372 #define IC_INT_2CAPTURE 0x0020 373 #define IC_INT_1CAPTURE 0x0000 374 #define IC_INT_CAPTURE_MASK (~IC_INT_4CAPTURE) 376 #define IC_INTERRUPT 0x0007 377 #define IC_EVERY_16_RISE_EDGE 0x0005 378 #define IC_EVERY_4_RISE_EDGE 0x0004 379 #define IC_EVERY_RISE_EDGE 0x0003 380 #define IC_EVERY_FALL_EDGE 0x0002 381 #define IC_EVERY_EDGE 0x0001 382 #define IC_INPUTCAP_OFF 0x0000 383 #define IC_CAPTURE_MODE_MASK (~IC_INTERRUPT) 396 #if (defined(__dsPIC33E__) || defined(__PIC24E__)) 397 #define OC_IDLE_CON 0x0000 398 #define OC_IDLE_STOP 0x2000 399 #define OC_IDLE_MASK (~OC_IDLE_STOP) 400 #define OC_TIMER2_SRC (0 << 10) 401 #define OC_TIMER3_SRC (1 << 10) 402 #define OC_TIMER4_SRC (2 << 10) 403 #define OC_TIMER5_SRC (3 << 10) 404 #define OC_TIMER1_SRC (4 << 10) 405 #define OC_FP_SRC (7 << 10) 408 #define OC_PWM_CENTER_ALIGN 0x0007 409 #define OC_PWM_EDGE_ALIGN 0x0006 410 #define OC_CONTINUE_PULSE 0x0005 411 #define OC_SINGLE_PULSE 0x0004 412 #define OC_TOGGLE_PULSE 0x0003 413 #define OC_HIGH_LOW 0x0002 414 #define OC_LOW_HIGH 0x0001 415 #define OC_OFF 0x0000 416 #define OC_PWM_MODE_MASK (~OC_PWM_FAULT_PIN_ENABLE) 418 #define OC_PWM_FAULT_PIN_ENABLE 0x0007 419 #define OC_PWM_FAULT_PIN_DISABLE 0x0006 422 #define OC_FLTMD_ON (0x01 << 15) 423 #define OC_FLTMD_OFF (0x00 << 15) 424 #define OC_FLTOUT_ON (0x01 << 14) 425 #define OC_FLTOUT_OFF (0x00 << 14) 426 #define OC_FLTTRIEN_ON (0x01 << 13) 427 #define OC_FLTTRIEN_OFF (0x00 << 13) 428 #define OC_OCINV_ON (0x01 << 12) 429 #define OC_OCINV_OFF (0x00 << 12) 431 #define OC_IC32_ON (0x01 << 8) 432 #define OC_IC32_OFF (0x00 << 8) 433 #define OC_TRIG_MODE (0x01 << 7) 434 #define OC_SYNC_MODE (0x00 << 7) 435 #define OC_TRIS_ON (0x01 << 5) 436 #define OC_TRIS_OFF (0x00 << 5) 440 #define OC_SYNCSEL_NOSYNC 0x00 441 #define OC_SYNCSEL_OC1 0x01 442 #define OC_SYNCSEL_OC2 0x02 443 #define OC_SYNCSEL_OC3 0x03 444 #define OC_SYNCSEL_OC4 0x04 445 #define OC_SYNCSEL_PTGO 0x0A 446 #define OC_SYNCSEL_TIMER1 0x0B 447 #define OC_SYNCSEL_TIMER2 0x0C 448 #define OC_SYNCSEL_TIMER3 0x0D 449 #define OC_SYNCSEL_TIMER4 0x0E 450 #define OC_SYNCSEL_TIMER5 0x0F 451 #define OC_SYNCSEL_IC1 0x10 452 #define OC_SYNCSEL_IC2 0x11 453 #define OC_SYNCSEL_IC3 0x12 454 #define OC_SYNCSEL_IC4 0x13 455 #define OC_SYNCSEL_CMP1 0x18 456 #define OC_SYNCSEL_CMP2 0x19 457 #define OC_SYNCSEL_CMP3 0x1A 458 #define OC_SYNCSEL_ADC1 0x1B 459 #define OC_SYNCSEL_CTMU 0x1C 460 #define OC_SYNCSEL_INT1 0x1D 461 #define OC_SYNCSEL_INT2 0x1E 462 #define OC_SYNCSEL_OCxRS 0x1F 466 #define OC_IDLE_CON 0x0000 467 #define OC_IDLE_STOP 0x2000 468 #define OC_IDLE_MASK (~OC_IDLE_STOP) 471 #define OC_TIMER2_SRC 0x0000 472 #define OC_TIMER3_SRC 0x0008 473 #define OC_TIMER_SRC_MASK (~OC_TIMER3_SRC) 475 #define OC_PWM_FAULT_PIN_ENABLE 0x0007 476 #define OC_PWM_FAULT_PIN_DISABLE 0x0006 477 #define OC_CONTINUE_PULSE 0x0005 478 #define OC_SINGLE_PULSE 0x0004 479 #define OC_TOGGLE_PULSE 0x0003 480 #define OC_HIGH_LOW 0x0002 481 #define OC_LOW_HIGH 0x0001 482 #define OC_OFF 0x0000 483 #define OC_PWM_MODE_MASK (~OC_PWM_FAULT_PIN_ENABLE)
uint16_t getTimerPrescaleBits(uint8_t u8_TCKPS)
uint16_t computeDeltaTicks(uint16_t u16_start, uint16_t u16_end, uint16_t u16_tmrPR)
uint32_t computeDeltaTicksLong(uint16_t u16_start, uint16_t u16_end, uint16_t u16_tmrPR, uint16_t u16_oflows)
uint32_t ticksToMs(uint32_t u32_ticks, uint16_t u16_tmrPre)
Configures the system clock.
uint16_t msToU16Ticks(uint16_t u16_ms, uint16_t u16_pre)
uint32_t usToU32Ticks(uint32_t u32_us, uint16_t u16_pre)
uint32_t ticksToUs(uint32_t u32_ticks, uint16_t u16_tmrPre)
uint32_t ticksToNs(uint32_t u32_ticks, uint16_t u16_tmrPre)
unsigned char uint8_t
An abbreviation for an 8-bit unsigned integer.
uint16_t usToU16Ticks(uint16_t u16_us, uint16_t u16_pre)