タイマと同期する関数と周期的割込みとサポートする.登録した際のプログラム名:Demo_MyTicker7.

Dependents:   Demo_MyTicker7 F446_DSP_FunctionGenerator TrG_FunctionGenerator DSP_Seminar_FunctionGenerator

Committer:
MikamiUitOpen
Date:
Sat Oct 17 00:41:36 2020 +0000
Revision:
1:f4269105fae0
Parent:
0:329029faa850
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:329029faa850 1 //-----------------------------------------------------------
MikamiUitOpen 1:f4269105fae0 2 // タイマを使った正確な同期の実現, TIM7 を使用
MikamiUitOpen 0:329029faa850 3 //
MikamiUitOpen 1:f4269105fae0 4 // 2020/10/16, 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