タイマと同期する関数と周期的割込みとサポートする.登録した際のプログラム名:Demo_MyTicker7.
Dependents: Demo_MyTicker7 F446_DSP_FunctionGenerator TrG_FunctionGenerator DSP_Seminar_FunctionGenerator
MyTicker7.hpp@0:329029faa850, 2020-06-01 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon Jun 01 04:04:37 2020 +0000
- Revision:
- 0:329029faa850
- Child:
- 1:f4269105fae0
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:329029faa850 | 1 | //----------------------------------------------------------- |
MikamiUitOpen | 0:329029faa850 | 2 | // タイマを使った正確な同期の実現, TIM10 を使用 |
MikamiUitOpen | 0:329029faa850 | 3 | // |
MikamiUitOpen | 0:329029faa850 | 4 | // 2020/06/01, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:329029faa850 | 5 | //----------------------------------------------------------- |
MikamiUitOpen | 0:329029faa850 | 6 | |
MikamiUitOpen | 0:329029faa850 | 7 | #include "mbed.h" |
MikamiUitOpen | 0:329029faa850 | 8 | |
MikamiUitOpen | 0:329029faa850 | 9 | #ifndef MYTICKER7_HPP |
MikamiUitOpen | 0:329029faa850 | 10 | #define MYTICKER7_HPP |
MikamiUitOpen | 0:329029faa850 | 11 | |
MikamiUitOpen | 0:329029faa850 | 12 | namespace Mikami |
MikamiUitOpen | 0:329029faa850 | 13 | { |
MikamiUitOpen | 0:329029faa850 | 14 | class MyTicker7 |
MikamiUitOpen | 0:329029faa850 | 15 | { |
MikamiUitOpen | 0:329029faa850 | 16 | public: |
MikamiUitOpen | 0:329029faa850 | 17 | // コンストラクタ |
MikamiUitOpen | 0:329029faa850 | 18 | // period 時間間隔 [μs] |
MikamiUitOpen | 0:329029faa850 | 19 | explicit MyTicker7(float period); |
MikamiUitOpen | 0:329029faa850 | 20 | |
MikamiUitOpen | 0:329029faa850 | 21 | // コンストラクタで設定した時間が経過するまで待つ |
MikamiUitOpen | 0:329029faa850 | 22 | void Sync(); |
MikamiUitOpen | 0:329029faa850 | 23 | |
MikamiUitOpen | 0:329029faa850 | 24 | // クラス内 ISR で実行する関数の割当て,割込みを有効にする |
MikamiUitOpen | 0:329029faa850 | 25 | void Attach(void (*Func)()); |
MikamiUitOpen | 0:329029faa850 | 26 | |
MikamiUitOpen | 0:329029faa850 | 27 | // 割込みを無効にする |
MikamiUitOpen | 0:329029faa850 | 28 | void Disable() { MY_TIM_->DIER &= ~TIM_DIER_UIE; } |
MikamiUitOpen | 0:329029faa850 | 29 | // 割込みを有効にする |
MikamiUitOpen | 0:329029faa850 | 30 | void Enable() { MY_TIM_->DIER |= TIM_DIER_UIE; } |
MikamiUitOpen | 0:329029faa850 | 31 | |
MikamiUitOpen | 0:329029faa850 | 32 | private: |
MikamiUitOpen | 0:329029faa850 | 33 | static TIM_TypeDef* const MY_TIM_; |
MikamiUitOpen | 0:329029faa850 | 34 | static void (*fp)(); // 割込みサービス・ルーチンの中で実行される関数のポインタ |
MikamiUitOpen | 0:329029faa850 | 35 | static void Isr(); // カラス内の割込みサービス・ルーチン |
MikamiUitOpen | 0:329029faa850 | 36 | static bool created_; // オブジェクトの多重生成禁止のため |
MikamiUitOpen | 0:329029faa850 | 37 | |
MikamiUitOpen | 0:329029faa850 | 38 | // コピー・コンストラクタ,代入演算子の禁止のため |
MikamiUitOpen | 0:329029faa850 | 39 | MyTicker7(const MyTicker7&); |
MikamiUitOpen | 0:329029faa850 | 40 | MyTicker7& operator=(const MyTicker7&); |
MikamiUitOpen | 0:329029faa850 | 41 | }; |
MikamiUitOpen | 0:329029faa850 | 42 | } |
MikamiUitOpen | 0:329029faa850 | 43 | #endif // MYTICKER7_HPP |