![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
CQ出版社セミナ "実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング" で使う外付け回路のテスト
Dependencies: mbed UIT_SetOutputPortType UIT_AQM1602 UIT_ADT7410
MyTicker14/MyTicker14.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2020-04-02
- Revision:
- 2:3f2be675f975
- Parent:
- 0:8c850cf6285d
File content as of revision 2:3f2be675f975:
//---------------------------------------------------------------------- // Ticker と同じような機能のほかに,割込みの時間間隔を設定するメンバ関数を // 追加した行うクラス,ヘッダ // // 2020/02/22, Copyright (c) 2020 MIKAMI, Naoki //---------------------------------------------------------------------- #include "mbed.h" #ifndef MYTICKER14_F446_HPP #define MYTICKER14_F446_HPP namespace Mikami { class MyTicker14 { public: MyTicker14(); // 割込みサービスルーチンの割り当てと割込み周期(μs 単位)の設定 void Attach_us(void (*Func)(), uint16_t time); // 割込みサービスルーチンの割り当てと割込み周期(ms 単位)の設定 void Attach_ms(void (*Func)(), uint16_t time); // 割込みを有効にする void Enable() { tim_->DIER |= TIM_DIER_UIE; } // 割込みを無効にする void Disable() { tim_->DIER &= ~TIM_DIER_UIE; } // 割込み周期(μs 単位)の設定 void SetPeriod_us(uint16_t time); // 割込み周期(ms 単位)の設定 void SetPeriod_ms(uint16_t time); private: // 割込みサービス・ルーチンの中で実行される関数のポインタ static void (*fp_)(); // タイマに対応する構造体のポインタ static TIM_TypeDef* const tim_; static bool created_; uint32_t intClock_; // TIM14 を駆動するクロック周波数 // 割込みサービス・ルーチン static void Isr(); // タイマ設定の共通の処理 void SetCommon(void (*Func)()); // コピー・コンストラクタおよび代入演算子の禁止のため MyTicker14(const MyTicker14& ); MyTicker14& operator=(const MyTicker14& ); }; } #endif // MYTICKER14_F446_HPP