Takumi Nakagawara / Mseq
Revision:
0:3e4357746fe2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Mseq.h	Thu Mar 28 07:14:57 2019 +0000
@@ -0,0 +1,33 @@
+#ifndef MSEQ_H
+#define MSEQ_H
+
+#include "mbed.h"
+
+/**
+ * @brief M-sequence (maximum length sequence) generator
+ */
+class Mseq
+{
+private:
+    //! シフトレジスタのビット数
+    uint8_t n;
+    
+    //! シフトレジスタ本体
+    //! reg[0](LSB)が出力
+    //! reg[n](MSB)がフィードバック先
+    //! 更新時にはregが右に1bitずつしふとされていく
+    uint32_t reg;
+    
+    //! regの更新時にfeedbackするbitの位置
+    uint32_t coef;
+    
+public:
+    Mseq(uint8_t _n);
+    void reset();
+    void reset(uint8_t _n);
+    uint8_t update();
+    uint8_t getOutput() const;
+    uint32_t getRegister() const;
+};
+
+#endif
\ No newline at end of file