CQ出版社セミナ "実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング" で使う外付け回路のテスト

Dependencies:   mbed UIT_SetOutputPortType UIT_AQM1602 UIT_ADT7410

Committer:
MikamiUitOpen
Date:
Thu Apr 02 03:47:14 2020 +0000
Revision:
2:3f2be675f975
Parent:
0:8c850cf6285d
3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:8c850cf6285d 1 //----------------------------------------------------------------------
MikamiUitOpen 0:8c850cf6285d 2 // TIM13 の Update event (UEV) 割込みを使って,
MikamiUitOpen 0:8c850cf6285d 3 // Ticker と同じような機能を持つクラス,ヘッダ
MikamiUitOpen 0:8c850cf6285d 4 //
MikamiUitOpen 0:8c850cf6285d 5 // 2020/01/25, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 0:8c850cf6285d 6 //----------------------------------------------------------------------
MikamiUitOpen 0:8c850cf6285d 7
MikamiUitOpen 0:8c850cf6285d 8 #include "mbed.h"
MikamiUitOpen 0:8c850cf6285d 9
MikamiUitOpen 0:8c850cf6285d 10 #ifndef MYTICKER13_F446_HPP
MikamiUitOpen 0:8c850cf6285d 11 #define MYTICKER13_F446_HPP
MikamiUitOpen 0:8c850cf6285d 12
MikamiUitOpen 0:8c850cf6285d 13 namespace Mikami
MikamiUitOpen 0:8c850cf6285d 14 {
MikamiUitOpen 0:8c850cf6285d 15 class MyTicker13
MikamiUitOpen 0:8c850cf6285d 16 {
MikamiUitOpen 0:8c850cf6285d 17 public:
MikamiUitOpen 0:8c850cf6285d 18 MyTicker13();
MikamiUitOpen 0:8c850cf6285d 19 // 割込みサービスルーチンの割り当てと割込み周期(μs 単位)の設定
MikamiUitOpen 0:8c850cf6285d 20 void Attach_us(void (*Func)(), uint16_t time);
MikamiUitOpen 0:8c850cf6285d 21 // 割込みサービスルーチンの割り当てと割込み周期(ms 単位)の設定
MikamiUitOpen 0:8c850cf6285d 22 void Attach_ms(void (*Func)(), uint16_t time);
MikamiUitOpen 0:8c850cf6285d 23 // 割込みを有効にする
MikamiUitOpen 0:8c850cf6285d 24 void Enable() { tim_->DIER |= TIM_DIER_UIE; }
MikamiUitOpen 0:8c850cf6285d 25 // 割込みを無効にする
MikamiUitOpen 0:8c850cf6285d 26 void Disable() { tim_->DIER &= ~TIM_DIER_UIE; }
MikamiUitOpen 0:8c850cf6285d 27
MikamiUitOpen 0:8c850cf6285d 28 private:
MikamiUitOpen 0:8c850cf6285d 29 // 割込みサービス・ルーチンの中で実行される関数のポインタ
MikamiUitOpen 0:8c850cf6285d 30 static void (*fp)();
MikamiUitOpen 0:8c850cf6285d 31 // タイマに対応する構造体のポインタ
MikamiUitOpen 0:8c850cf6285d 32 static TIM_TypeDef* const tim_;
MikamiUitOpen 0:8c850cf6285d 33 static bool created_;
MikamiUitOpen 0:8c850cf6285d 34 uint32_t intClock_; // TIM13 を駆動するクロック周波数
MikamiUitOpen 0:8c850cf6285d 35
MikamiUitOpen 0:8c850cf6285d 36 // 割込みサービス・ルーチン
MikamiUitOpen 0:8c850cf6285d 37 static void Isr();
MikamiUitOpen 0:8c850cf6285d 38 // タイマ設定の共通の処理
MikamiUitOpen 0:8c850cf6285d 39 void SetCommon(void (*Func)());
MikamiUitOpen 0:8c850cf6285d 40
MikamiUitOpen 0:8c850cf6285d 41 // コピー・コンストラクタおよび代入演算子の禁止のため
MikamiUitOpen 0:8c850cf6285d 42 MyTicker13(const MyTicker13& );
MikamiUitOpen 0:8c850cf6285d 43 MyTicker13& operator=(const MyTicker13& );
MikamiUitOpen 0:8c850cf6285d 44 };
MikamiUitOpen 0:8c850cf6285d 45 }
MikamiUitOpen 0:8c850cf6285d 46 #endif // MYTICKER13_F446_HPP
MikamiUitOpen 0:8c850cf6285d 47