Subversion Repositories libIgnTiming

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /// This file deals with calculating RPM
  2. #pragma once
  3.  
  4. #include "main.h"
  5. #if !defined RPMTIMER
  6. #warning RPMTIMER was not set
  7. #endif
  8.  
  9. #if RPMTIMER==1
  10. // construct macros to deal with interrupts from the given Timer channel
  11. #define TIMER_IRQ_HANDLER TIM1_IRQHandler
  12. #define TIMER_HANDLE htim1
  13. #elif RPMTIMER==2
  14. #define TIMER_IRQ_HANDLER TIM2_IRQHandler
  15. #define TIMER_HANDLE htim2
  16. #elif RPMTIMER==3
  17. #define TIMER_IRQ_HANDLER TIM3_IRQHandler
  18. #define TIMER_HANDLE htim3
  19. #elif RPMTIMER==4
  20. #define TIMER_IRQ_HANDLER TIM4_IRQHandler
  21. #define TIMER_HANDLE htim4
  22. #endif
  23.  
  24.  
  25. #if defined RPMTIMER
  26.  
  27. #define RPM_FLAG (1UL << 16)    // set high if the CB points are opened
  28. #define RPM_SAMPLES 256         // sample times per 100mS or 1000mS when testing
  29. #define RPM_COUNT_RATE 100000UL // Counter increments at 100KHz (need to match in STM32CubeMX)
  30.  
  31. #define RPM_AVERAGE 4
  32.  
  33. #if defined __cplusplus
  34. extern "C"
  35. {
  36. #endif
  37.     // return rpm estimate or -1 if not calculated this time
  38.     extern int  CalculateRPM(void);
  39.  
  40. #if defined __cplusplus
  41. }
  42. #endif
  43.  
  44. #endif