Takumi Nakagawara / Mseq
Committer:
Takkun
Date:
Sun Mar 31 06:19:04 2019 +0000
Revision:
1:47c03f50ad79
Parent:
0:3e4357746fe2
Expand the effective number of bits

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Takkun 0:3e4357746fe2 1 #ifndef MSEQ_H
Takkun 0:3e4357746fe2 2 #define MSEQ_H
Takkun 0:3e4357746fe2 3
Takkun 0:3e4357746fe2 4 #include "mbed.h"
Takkun 0:3e4357746fe2 5
Takkun 0:3e4357746fe2 6 /**
Takkun 0:3e4357746fe2 7 * @brief M-sequence (maximum length sequence) generator
Takkun 0:3e4357746fe2 8 */
Takkun 0:3e4357746fe2 9 class Mseq
Takkun 0:3e4357746fe2 10 {
Takkun 0:3e4357746fe2 11 private:
Takkun 0:3e4357746fe2 12 //! シフトレジスタのビット数
Takkun 0:3e4357746fe2 13 uint8_t n;
Takkun 0:3e4357746fe2 14
Takkun 0:3e4357746fe2 15 //! シフトレジスタ本体
Takkun 0:3e4357746fe2 16 //! reg[0](LSB)が出力
Takkun 0:3e4357746fe2 17 //! reg[n](MSB)がフィードバック先
Takkun 0:3e4357746fe2 18 //! 更新時にはregが右に1bitずつしふとされていく
Takkun 0:3e4357746fe2 19 uint32_t reg;
Takkun 0:3e4357746fe2 20
Takkun 0:3e4357746fe2 21 //! regの更新時にfeedbackするbitの位置
Takkun 0:3e4357746fe2 22 uint32_t coef;
Takkun 0:3e4357746fe2 23
Takkun 0:3e4357746fe2 24 public:
Takkun 0:3e4357746fe2 25 Mseq(uint8_t _n);
Takkun 0:3e4357746fe2 26 void reset();
Takkun 0:3e4357746fe2 27 void reset(uint8_t _n);
Takkun 0:3e4357746fe2 28 uint8_t update();
Takkun 0:3e4357746fe2 29 uint8_t getOutput() const;
Takkun 0:3e4357746fe2 30 uint32_t getRegister() const;
Takkun 0:3e4357746fe2 31 };
Takkun 0:3e4357746fe2 32
Takkun 0:3e4357746fe2 33 #endif