CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使うプログラム.雛形として使う. http://seminar.cqpub.co.jp/ccm/ES18-0020

Dependencies:   F746_GUI F746_SAI_IO mbed

Committer:
MikamiUitOpen
Date:
Tue Mar 20 11:15:47 2018 +0000
Revision:
5:976ef47a7f25
Parent:
0:b6d17af0f47a
6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:b6d17af0f47a 1 //-----------------------------------------------------------
MikamiUitOpen 0:b6d17af0f47a 2 // Class for waveform display ---- Header
MikamiUitOpen 0:b6d17af0f47a 3 //
MikamiUitOpen 0:b6d17af0f47a 4 // 2017/07/24, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 0:b6d17af0f47a 5 //-----------------------------------------------------------
MikamiUitOpen 0:b6d17af0f47a 6
MikamiUitOpen 0:b6d17af0f47a 7 #ifndef F746_WAVEFORM_DISPLAY_HPP
MikamiUitOpen 0:b6d17af0f47a 8 #define F746_WAVEFORM_DISPLAY_HPP
MikamiUitOpen 0:b6d17af0f47a 9
MikamiUitOpen 0:b6d17af0f47a 10 #include "mbed.h"
MikamiUitOpen 0:b6d17af0f47a 11 #include "LCD_DISCO_F746NG.h"
MikamiUitOpen 0:b6d17af0f47a 12 #include "Array.hpp"
MikamiUitOpen 0:b6d17af0f47a 13
MikamiUitOpen 0:b6d17af0f47a 14 namespace Mikami
MikamiUitOpen 0:b6d17af0f47a 15 {
MikamiUitOpen 0:b6d17af0f47a 16 class WaveformDisplay
MikamiUitOpen 0:b6d17af0f47a 17 {
MikamiUitOpen 0:b6d17af0f47a 18 public:
MikamiUitOpen 0:b6d17af0f47a 19 WaveformDisplay(LCD_DISCO_F746NG &lcd,
MikamiUitOpen 0:b6d17af0f47a 20 uint16_t x0, uint16_t y0,
MikamiUitOpen 0:b6d17af0f47a 21 const Array<int16_t>& xn,
MikamiUitOpen 0:b6d17af0f47a 22 const Array<int16_t>& yn,
MikamiUitOpen 0:b6d17af0f47a 23 uint16_t nData,
MikamiUitOpen 0:b6d17af0f47a 24 uint16_t rShift,
MikamiUitOpen 0:b6d17af0f47a 25 uint32_t axisColor,
MikamiUitOpen 0:b6d17af0f47a 26 uint32_t lineColor1,
MikamiUitOpen 0:b6d17af0f47a 27 uint32_t lineColor2,
MikamiUitOpen 0:b6d17af0f47a 28 uint32_t backColor)
MikamiUitOpen 0:b6d17af0f47a 29 : X0_(x0), Y0_(y0), xn_(xn), yn_(yn),
MikamiUitOpen 0:b6d17af0f47a 30 N_DATA_(nData),
MikamiUitOpen 0:b6d17af0f47a 31 R_SHIFT_(rShift),
MikamiUitOpen 0:b6d17af0f47a 32 AXIS_COLOR_(axisColor),
MikamiUitOpen 0:b6d17af0f47a 33 LINE_COLOR1_(lineColor1), LINE_COLOR2_(lineColor2),
MikamiUitOpen 0:b6d17af0f47a 34 BACK_COLOR_(backColor),
MikamiUitOpen 0:b6d17af0f47a 35 lcd_(lcd), dt_(1) { Axis(); }
MikamiUitOpen 0:b6d17af0f47a 36
MikamiUitOpen 0:b6d17af0f47a 37 void Execute(int start, int factor);
MikamiUitOpen 0:b6d17af0f47a 38
MikamiUitOpen 0:b6d17af0f47a 39 private:
MikamiUitOpen 0:b6d17af0f47a 40 const uint16_t X0_, Y0_;
MikamiUitOpen 0:b6d17af0f47a 41 const Array<int16_t>& xn_;
MikamiUitOpen 0:b6d17af0f47a 42 const Array<int16_t>& yn_;
MikamiUitOpen 0:b6d17af0f47a 43 const int N_DATA_;
MikamiUitOpen 0:b6d17af0f47a 44 const uint16_t R_SHIFT_;
MikamiUitOpen 0:b6d17af0f47a 45 const uint32_t AXIS_COLOR_;
MikamiUitOpen 0:b6d17af0f47a 46 const uint32_t LINE_COLOR1_;
MikamiUitOpen 0:b6d17af0f47a 47 const uint32_t LINE_COLOR2_;
MikamiUitOpen 0:b6d17af0f47a 48 const uint32_t BACK_COLOR_;
MikamiUitOpen 0:b6d17af0f47a 49 static const int LIMIT_ = 64;
MikamiUitOpen 0:b6d17af0f47a 50 static const int LIMIT2_ = LIMIT_ + 1;
MikamiUitOpen 0:b6d17af0f47a 51
MikamiUitOpen 0:b6d17af0f47a 52 LCD_DISCO_F746NG &lcd_;
MikamiUitOpen 0:b6d17af0f47a 53
MikamiUitOpen 0:b6d17af0f47a 54 int dt_;
MikamiUitOpen 0:b6d17af0f47a 55
MikamiUitOpen 0:b6d17af0f47a 56 uint16_t Clip(int16_t xn); // Clipping
MikamiUitOpen 0:b6d17af0f47a 57 void Draw(const Array<int16_t>& xn, int start, uint32_t color);
MikamiUitOpen 0:b6d17af0f47a 58 void Axis();
MikamiUitOpen 0:b6d17af0f47a 59
MikamiUitOpen 0:b6d17af0f47a 60 // disallow copy constructor and assignment operator
MikamiUitOpen 0:b6d17af0f47a 61 WaveformDisplay(const WaveformDisplay& );
MikamiUitOpen 0:b6d17af0f47a 62 WaveformDisplay& operator=(const WaveformDisplay& );
MikamiUitOpen 0:b6d17af0f47a 63 };
MikamiUitOpen 0:b6d17af0f47a 64 }
MikamiUitOpen 0:b6d17af0f47a 65 #endif // F746_WAVEFORM_DISPLAY_HPP