#include <cinputtiming.h>


Public Member Functions | |
| CInputTiming (CMachine::InterruptVector vector, TIM_TypeDef *TIMx, bool invertA=false, bool invertB=false, CMachine::ubit16 countPerRevA=1, CMachine::ubit16 countPerRevB=1, CMachine::ubit32 freqency=BASE_TIMER_FREQUENCY) | |
| Constructor. Target counter frequency is expressed in Hz, default is 2MHz counter. | |
| CMachine::ubit16 | countA () |
| current timing count | |
| CMachine::ubit16 | countB () |
| CMachine::ubit16 | countPerRevA () |
| timing count per revolution (360 degrees). | |
| CMachine::ubit16 | countPerRevB () |
| virtual void | irq (CMachine::InterruptVector v) |
| receive a hardware interrupt | |
| void | setCountPerRevA (CMachine::ubit16 countPerRev) |
| set timing count pre revolution (360 degrees). | |
| void | setCountPerRevB (CMachine::ubit16 countPerRev) |
| virtual | ~CInputTiming () |
Protected Member Functions | |
| void | setCountA (CMachine::ubit16 countA) |
| void | setCountB (CMachine::ubit16 countB) |
Private Attributes | |
| CMachine::ubit16 | mCountA |
| CMachine::ubit16 | mCountB |
| CMachine::ubit16 | mCountPerRevA |
| CMachine::ubit16 | mCountPerRevB |
Definition at line 31 of file cinputtiming.h.
| PikeAero::CInputTiming::CInputTiming | ( | CMachine::InterruptVector | vector, | |
| TIM_TypeDef * | TIMx, | |||
| bool | invertA = false, |
|||
| bool | invertB = false, |
|||
| CMachine::ubit16 | countPerRevA = 1, |
|||
| CMachine::ubit16 | countPerRevB = 1, |
|||
| CMachine::ubit32 | freqency = BASE_TIMER_FREQUENCY | |||
| ) |
Constructor. Target counter frequency is expressed in Hz, default is 2MHz counter.
Definition at line 26 of file cinputtiming.cpp.
00035 : inherited(vector,TIMx,invertA,invertB,frequency) 00036 , mCountPerRevA(countPerRevA) 00037 , mCountPerRevB(countPerRevB) 00038 , mCountA(0) 00039 , mCountB(0) 00040 { 00041 }
| PikeAero::CInputTiming::~CInputTiming | ( | ) | [virtual] |
| CMachine::ubit16 PikeAero::CInputTiming::countA | ( | ) | [inline] |
current timing count
Definition at line 63 of file cinputtiming.h.
References mCountA.
00063 {return mCountA;}
| CMachine::ubit16 PikeAero::CInputTiming::countB | ( | ) | [inline] |
| CMachine::ubit16 PikeAero::CInputTiming::countPerRevA | ( | ) | [inline] |
timing count per revolution (360 degrees).
Definition at line 57 of file cinputtiming.h.
References mCountPerRevA.
Referenced by PikeAero::CTaskAggregator::calculateRPM().
00057 {return mCountPerRevA;}

| CMachine::ubit16 PikeAero::CInputTiming::countPerRevB | ( | ) | [inline] |
Definition at line 58 of file cinputtiming.h.
References mCountPerRevB.
Referenced by PikeAero::CTaskAggregator::calculateRPM().
00058 {return mCountPerRevB;}

| void PikeAero::CInputTiming::irq | ( | CMachine::InterruptVector | v | ) | [virtual] |
receive a hardware interrupt
Input Capture Flag A
Input Capture Flag B
Reimplemented from PikeAero::CBinaryInputCapture.
Reimplemented in PikeAero::CInputTimingToothCounter.
Definition at line 51 of file cinputtiming.cpp.
References mCountA, mCountB, mCountPerRevA, mCountPerRevB, PikeAero::CBinaryInputCapture::statusRegister(), TIM_ICFA, and TIM_ICFB.
00052 { 00053 inherited::irq(v); 00054 00055 /** Input Capture Flag A */ 00056 if ( statusRegister() & TIM_ICFA ) 00057 { 00058 if ( ++mCountA > mCountPerRevA ) 00059 { 00060 mCountA = 1; 00061 } 00062 } 00063 00064 /** Input Capture Flag B */ 00065 if ( statusRegister() & TIM_ICFB ) 00066 { 00067 if ( ++mCountB > mCountPerRevB ) 00068 { 00069 mCountB = 1; 00070 } 00071 } 00072 00073 }

| void PikeAero::CInputTiming::setCountA | ( | CMachine::ubit16 | countA | ) | [inline, protected] |
Definition at line 73 of file cinputtiming.h.
References mCountA.
Referenced by PikeAero::CInputTimingToothCounter::callback().

| void PikeAero::CInputTiming::setCountB | ( | CMachine::ubit16 | countB | ) | [inline, protected] |
Definition at line 74 of file cinputtiming.h.
References mCountB.
Referenced by PikeAero::CInputTimingToothCounter::callback().

| void PikeAero::CInputTiming::setCountPerRevA | ( | CMachine::ubit16 | countPerRev | ) | [inline] |
set timing count pre revolution (360 degrees).
Definition at line 51 of file cinputtiming.h.
References mCountPerRevA.
00051 {mCountPerRevA=countPerRev;}
| void PikeAero::CInputTiming::setCountPerRevB | ( | CMachine::ubit16 | countPerRev | ) | [inline] |
Definition at line 52 of file cinputtiming.h.
References mCountPerRevB.
00052 {mCountPerRevB=countPerRev;}
Definition at line 78 of file cinputtiming.h.
Referenced by countPerRevA(), irq(), and setCountPerRevA().
Definition at line 79 of file cinputtiming.h.
Referenced by countPerRevB(), irq(), and setCountPerRevB().
1.5.8