CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使うプログラムを,入力として STM32F746 の内蔵 ADC を使うように変更したもの. http://seminar.cqpub.co.jp/ccm/ES18-0020

Dependencies:   mbed Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Committer:
MikamiUitOpen
Date:
Sat Oct 07 03:28:40 2017 +0000
Revision:
0:ab7a35d87173
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:ab7a35d87173 1 //-----------------------------------------------------------
MikamiUitOpen 0:ab7a35d87173 2 // ButtonGroup class -- Header
MikamiUitOpen 0:ab7a35d87173 3 //
MikamiUitOpen 0:ab7a35d87173 4 // 2017/01/25, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 0:ab7a35d87173 5 //-----------------------------------------------------------
MikamiUitOpen 0:ab7a35d87173 6
MikamiUitOpen 0:ab7a35d87173 7 #ifndef F746_BUTTON_GROUP_HPP
MikamiUitOpen 0:ab7a35d87173 8 #define F746_BUTTON_GROUP_HPP
MikamiUitOpen 0:ab7a35d87173 9
MikamiUitOpen 0:ab7a35d87173 10 #include "Button.hpp"
MikamiUitOpen 0:ab7a35d87173 11 #include "Array.hpp"
MikamiUitOpen 0:ab7a35d87173 12
MikamiUitOpen 0:ab7a35d87173 13 namespace Mikami
MikamiUitOpen 0:ab7a35d87173 14 {
MikamiUitOpen 0:ab7a35d87173 15 class ButtonGroup
MikamiUitOpen 0:ab7a35d87173 16 {
MikamiUitOpen 0:ab7a35d87173 17 public:
MikamiUitOpen 0:ab7a35d87173 18 // Constructor
MikamiUitOpen 0:ab7a35d87173 19 ButtonGroup(uint16_t x0, uint16_t y0,
MikamiUitOpen 0:ab7a35d87173 20 uint16_t width, uint16_t height,
MikamiUitOpen 0:ab7a35d87173 21 uint16_t number, const string str[],
MikamiUitOpen 0:ab7a35d87173 22 uint16_t spaceX = 0, uint16_t spaceY = 0,
MikamiUitOpen 0:ab7a35d87173 23 uint16_t column = 1,
MikamiUitOpen 0:ab7a35d87173 24 int touched = -1, // number for button initially touched-color
MikamiUitOpen 0:ab7a35d87173 25 sFONT &fonts = Font12,
MikamiUitOpen 0:ab7a35d87173 26 uint32_t textColor = GuiBase::ENUM_TEXT,
MikamiUitOpen 0:ab7a35d87173 27 uint32_t backColor = GuiBase::ENUM_BACK,
MikamiUitOpen 0:ab7a35d87173 28 uint32_t createdColor = GuiBase::ENUM_CREATED,
MikamiUitOpen 0:ab7a35d87173 29 uint32_t touchedColor = GuiBase::ENUM_TOUCHED,
MikamiUitOpen 0:ab7a35d87173 30 uint32_t inactiveColor = GuiBase::ENUM_INACTIVE,
MikamiUitOpen 0:ab7a35d87173 31 uint32_t inactiveTextColor = GuiBase::ENUM_INACTIVE_TEXT);
MikamiUitOpen 0:ab7a35d87173 32
MikamiUitOpen 0:ab7a35d87173 33 // Destructor
MikamiUitOpen 0:ab7a35d87173 34 virtual ~ButtonGroup()
MikamiUitOpen 0:ab7a35d87173 35 { for (int n=0; n<NUMBER_; n++) delete buttons_[n]; }
MikamiUitOpen 0:ab7a35d87173 36
MikamiUitOpen 0:ab7a35d87173 37 // Draw button
MikamiUitOpen 0:ab7a35d87173 38 bool Draw(int num, uint32_t color, uint32_t textColor);
MikamiUitOpen 0:ab7a35d87173 39 bool Draw(int num) { return Draw(num, CREATED_COLOR_, TEXT_COLOR_); }
MikamiUitOpen 0:ab7a35d87173 40
MikamiUitOpen 0:ab7a35d87173 41 // Change to touched color
MikamiUitOpen 0:ab7a35d87173 42 bool TouchedColor(int num);
MikamiUitOpen 0:ab7a35d87173 43
MikamiUitOpen 0:ab7a35d87173 44 // Draw all buttons
MikamiUitOpen 0:ab7a35d87173 45 void DrawAll(uint32_t color, uint32_t textColor)
MikamiUitOpen 0:ab7a35d87173 46 { for (int n=0; n<NUMBER_; n++) Draw(n, color, textColor); }
MikamiUitOpen 0:ab7a35d87173 47 void DrawAll() { DrawAll(CREATED_COLOR_, TEXT_COLOR_); }
MikamiUitOpen 0:ab7a35d87173 48
MikamiUitOpen 0:ab7a35d87173 49 // Erase button
MikamiUitOpen 0:ab7a35d87173 50 bool Erase(int num);
MikamiUitOpen 0:ab7a35d87173 51 void EraseAll()
MikamiUitOpen 0:ab7a35d87173 52 { for (int n=0; n<NUMBER_; n++) Erase(n); }
MikamiUitOpen 0:ab7a35d87173 53
MikamiUitOpen 0:ab7a35d87173 54 // Check touch detected for specified button
MikamiUitOpen 0:ab7a35d87173 55 bool Touched(int num);
MikamiUitOpen 0:ab7a35d87173 56
MikamiUitOpen 0:ab7a35d87173 57 // Get touched number, return value: true or false
MikamiUitOpen 0:ab7a35d87173 58 bool GetTouchedNumber(int &num);
MikamiUitOpen 0:ab7a35d87173 59 // Get touched number, return value: touched number
MikamiUitOpen 0:ab7a35d87173 60 int GetTouchedNumber();
MikamiUitOpen 0:ab7a35d87173 61
MikamiUitOpen 0:ab7a35d87173 62 // Wait until touched
MikamiUitOpen 0:ab7a35d87173 63 void WaitTouched(int num)
MikamiUitOpen 0:ab7a35d87173 64 { while (!Touched(num)) {} }
MikamiUitOpen 0:ab7a35d87173 65 // Wait until touched and get touched number
MikamiUitOpen 0:ab7a35d87173 66 int WaitTouchedAndGet();
MikamiUitOpen 0:ab7a35d87173 67
MikamiUitOpen 0:ab7a35d87173 68 // Activate and inactivate button(s)
MikamiUitOpen 0:ab7a35d87173 69 bool Activate(int num);
MikamiUitOpen 0:ab7a35d87173 70 void ActivateAll()
MikamiUitOpen 0:ab7a35d87173 71 { for (int n=0; n<NUMBER_; n++) Activate(n); }
MikamiUitOpen 0:ab7a35d87173 72 bool Inactivate(int num);
MikamiUitOpen 0:ab7a35d87173 73 void InactivateAll()
MikamiUitOpen 0:ab7a35d87173 74 { for (int n=0; n<NUMBER_; n++) Inactivate(n); }
MikamiUitOpen 0:ab7a35d87173 75
MikamiUitOpen 0:ab7a35d87173 76 private:
MikamiUitOpen 0:ab7a35d87173 77 const uint32_t TEXT_COLOR_;
MikamiUitOpen 0:ab7a35d87173 78 const uint32_t CREATED_COLOR_;
MikamiUitOpen 0:ab7a35d87173 79 const uint32_t TOUCHED_COLOR_;
MikamiUitOpen 0:ab7a35d87173 80 const int NUMBER_;
MikamiUitOpen 0:ab7a35d87173 81
MikamiUitOpen 0:ab7a35d87173 82 Array<Button *> buttons_;
MikamiUitOpen 0:ab7a35d87173 83 __IO int prevNum_;
MikamiUitOpen 0:ab7a35d87173 84
MikamiUitOpen 0:ab7a35d87173 85 // Check range of argument
MikamiUitOpen 0:ab7a35d87173 86 bool Range(int n)
MikamiUitOpen 0:ab7a35d87173 87 { return ((n >= 0) && (n < NUMBER_)); }
MikamiUitOpen 0:ab7a35d87173 88
MikamiUitOpen 0:ab7a35d87173 89 // disallow copy constructor and assignment operator
MikamiUitOpen 0:ab7a35d87173 90 ButtonGroup(const ButtonGroup&);
MikamiUitOpen 0:ab7a35d87173 91 ButtonGroup& operator=(const ButtonGroup&);
MikamiUitOpen 0:ab7a35d87173 92 };
MikamiUitOpen 0:ab7a35d87173 93 }
MikamiUitOpen 0:ab7a35d87173 94 #endif // F746_BUTTON_GROUP_HPP
MikamiUitOpen 0:ab7a35d87173 95