ファンクション・ジェネレータ
Dependencies: mbed SerialTxRxIntr MyTicker7 Array_Matrix
MSeq16.hpp@1:ea5aa7f3d68c, 2020-12-23 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Dec 23 01:07:09 2020 +0000
- Revision:
- 1:ea5aa7f3d68c
- Parent:
- 0:17c762b41fc7
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:17c762b41fc7 | 1 | //--------------------------------------------------------- |
MikamiUitOpen | 0:17c762b41fc7 | 2 | // M 系列信号発生器(N = 16) |
MikamiUitOpen | 0:17c762b41fc7 | 3 | // |
MikamiUitOpen | 0:17c762b41fc7 | 4 | // 2020/10/17, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:17c762b41fc7 | 5 | //--------------------------------------------------------- |
MikamiUitOpen | 0:17c762b41fc7 | 6 | |
MikamiUitOpen | 0:17c762b41fc7 | 7 | #include "mbed.h" |
MikamiUitOpen | 0:17c762b41fc7 | 8 | |
MikamiUitOpen | 0:17c762b41fc7 | 9 | #ifndef MSEQ16_HPP |
MikamiUitOpen | 0:17c762b41fc7 | 10 | #define MSEQ16_HPP |
MikamiUitOpen | 0:17c762b41fc7 | 11 | |
MikamiUitOpen | 0:17c762b41fc7 | 12 | namespace Mikami |
MikamiUitOpen | 0:17c762b41fc7 | 13 | { |
MikamiUitOpen | 0:17c762b41fc7 | 14 | class MSeq16 |
MikamiUitOpen | 0:17c762b41fc7 | 15 | { |
MikamiUitOpen | 0:17c762b41fc7 | 16 | public: |
MikamiUitOpen | 0:17c762b41fc7 | 17 | MSeq16() : reg_(1) {} |
MikamiUitOpen | 0:17c762b41fc7 | 18 | |
MikamiUitOpen | 0:17c762b41fc7 | 19 | // 戻り値: 1 => 1, 0 => -1 |
MikamiUitOpen | 0:17c762b41fc7 | 20 | int Execute() |
MikamiUitOpen | 0:17c762b41fc7 | 21 | { |
MikamiUitOpen | 0:17c762b41fc7 | 22 | if ((reg_ & B_M_) == B_M_) |
MikamiUitOpen | 0:17c762b41fc7 | 23 | { |
MikamiUitOpen | 0:17c762b41fc7 | 24 | reg_ = ((reg_ ^ XOR_) << 1) | 1; // 1 の場合の処理 |
MikamiUitOpen | 0:17c762b41fc7 | 25 | return 1; |
MikamiUitOpen | 0:17c762b41fc7 | 26 | } |
MikamiUitOpen | 0:17c762b41fc7 | 27 | else |
MikamiUitOpen | 0:17c762b41fc7 | 28 | { |
MikamiUitOpen | 0:17c762b41fc7 | 29 | reg_ = reg_ << 1; // 0 の場合の処理 |
MikamiUitOpen | 0:17c762b41fc7 | 30 | return -1; |
MikamiUitOpen | 0:17c762b41fc7 | 31 | } |
MikamiUitOpen | 0:17c762b41fc7 | 32 | } |
MikamiUitOpen | 0:17c762b41fc7 | 33 | private: |
MikamiUitOpen | 0:17c762b41fc7 | 34 | static const uint16_t XOR_ = (1 << (2-1)) |
MikamiUitOpen | 0:17c762b41fc7 | 35 | | (1 << (3-1)) |
MikamiUitOpen | 0:17c762b41fc7 | 36 | | (1 << (5-1)); // XOR の位置に対応する定数 |
MikamiUitOpen | 0:17c762b41fc7 | 37 | static const uint16_t B_M_ = 1 << (16-1); // 16 段目に相当するビットを調べる |
MikamiUitOpen | 0:17c762b41fc7 | 38 | |
MikamiUitOpen | 0:17c762b41fc7 | 39 | uint16_t reg_; |
MikamiUitOpen | 0:17c762b41fc7 | 40 | }; |
MikamiUitOpen | 0:17c762b41fc7 | 41 | } |
MikamiUitOpen | 0:17c762b41fc7 | 42 | #endif // MSEQ16_HPP |