Subversion Repositories libIgnTiming

Rev

Rev 2 | 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.  
  34. #endif
  35.  
  36. #if defined __cplusplus
  37. extern "C"
  38. {
  39. #endif
  40.     // return rpm estimate or -1 if not calculated this time
  41.     extern int  CalculateRPM(void);
  42.  
  43. #if defined __cplusplus
  44. }
  45. #endif
  46.