Object Model code with hardware support
Dependencies: mbed
anthem.hpp@0:2b4bbe9ea495, 2014-09-05 (annotated)
- Committer:
- bgrissom
- Date:
- Fri Sep 05 00:07:44 2014 +0000
- Revision:
- 0:2b4bbe9ea495
Object Model code with Toshiba S0 and S1 routines compiles with ST F401RE board support. If you try to compile this for the F030 or F072, it will run out of SRAM space.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bgrissom | 0:2b4bbe9ea495 | 1 | #ifndef __ANTHEM_H__ |
bgrissom | 0:2b4bbe9ea495 | 2 | #define __ANTHEM_H__ |
bgrissom | 0:2b4bbe9ea495 | 3 | |
bgrissom | 0:2b4bbe9ea495 | 4 | #include <stdint.h> |
bgrissom | 0:2b4bbe9ea495 | 5 | #include "defines.hpp" |
bgrissom | 0:2b4bbe9ea495 | 6 | #include "ToshibaTC62D723.hpp" |
bgrissom | 0:2b4bbe9ea495 | 7 | |
bgrissom | 0:2b4bbe9ea495 | 8 | // CODING STANDARDS: |
bgrissom | 0:2b4bbe9ea495 | 9 | // Local variable: var |
bgrissom | 0:2b4bbe9ea495 | 10 | // Global variable: g_var |
bgrissom | 0:2b4bbe9ea495 | 11 | // Paramater variable: p_var |
bgrissom | 0:2b4bbe9ea495 | 12 | // Member variable: _var |
bgrissom | 0:2b4bbe9ea495 | 13 | |
bgrissom | 0:2b4bbe9ea495 | 14 | class LED { |
bgrissom | 0:2b4bbe9ea495 | 15 | public: |
bgrissom | 0:2b4bbe9ea495 | 16 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 17 | LED(void); |
bgrissom | 0:2b4bbe9ea495 | 18 | |
bgrissom | 0:2b4bbe9ea495 | 19 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 20 | virtual ~LED(); |
bgrissom | 0:2b4bbe9ea495 | 21 | |
bgrissom | 0:2b4bbe9ea495 | 22 | // Members |
bgrissom | 0:2b4bbe9ea495 | 23 | ToshibaTC62D723 *_ledDriver; |
bgrissom | 0:2b4bbe9ea495 | 24 | |
bgrissom | 0:2b4bbe9ea495 | 25 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 26 | float getCalibrationFactor (void); |
bgrissom | 0:2b4bbe9ea495 | 27 | void setCalibrationFactor (float p_val); |
bgrissom | 0:2b4bbe9ea495 | 28 | uint8_t getDriverChannelNum (void); |
bgrissom | 0:2b4bbe9ea495 | 29 | void setDriverChannelNum (uint8_t p_val); |
bgrissom | 0:2b4bbe9ea495 | 30 | uint16_t getBrightness (void); |
bgrissom | 0:2b4bbe9ea495 | 31 | void setBrightness (uint16_t p_val); |
bgrissom | 0:2b4bbe9ea495 | 32 | |
bgrissom | 0:2b4bbe9ea495 | 33 | |
bgrissom | 0:2b4bbe9ea495 | 34 | private: |
bgrissom | 0:2b4bbe9ea495 | 35 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 36 | float _calibrationFactor; |
bgrissom | 0:2b4bbe9ea495 | 37 | uint8_t _driverChannelNum; |
bgrissom | 0:2b4bbe9ea495 | 38 | uint16_t _brightness; |
bgrissom | 0:2b4bbe9ea495 | 39 | |
bgrissom | 0:2b4bbe9ea495 | 40 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 41 | }; |
bgrissom | 0:2b4bbe9ea495 | 42 | |
bgrissom | 0:2b4bbe9ea495 | 43 | |
bgrissom | 0:2b4bbe9ea495 | 44 | class LEDPixel { |
bgrissom | 0:2b4bbe9ea495 | 45 | public: |
bgrissom | 0:2b4bbe9ea495 | 46 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 47 | LEDPixel(void); |
bgrissom | 0:2b4bbe9ea495 | 48 | |
bgrissom | 0:2b4bbe9ea495 | 49 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 50 | virtual ~LEDPixel(); |
bgrissom | 0:2b4bbe9ea495 | 51 | |
bgrissom | 0:2b4bbe9ea495 | 52 | // Members |
bgrissom | 0:2b4bbe9ea495 | 53 | LED _redLED; |
bgrissom | 0:2b4bbe9ea495 | 54 | LED _greenLED; |
bgrissom | 0:2b4bbe9ea495 | 55 | LED _blueLED; |
bgrissom | 0:2b4bbe9ea495 | 56 | |
bgrissom | 0:2b4bbe9ea495 | 57 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 58 | float getCalibrationFactor(void); |
bgrissom | 0:2b4bbe9ea495 | 59 | void setCalibrationFactor(float p_cal); |
bgrissom | 0:2b4bbe9ea495 | 60 | |
bgrissom | 0:2b4bbe9ea495 | 61 | |
bgrissom | 0:2b4bbe9ea495 | 62 | private: |
bgrissom | 0:2b4bbe9ea495 | 63 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 64 | float _calibrationFactor; |
bgrissom | 0:2b4bbe9ea495 | 65 | |
bgrissom | 0:2b4bbe9ea495 | 66 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 67 | }; |
bgrissom | 0:2b4bbe9ea495 | 68 | |
bgrissom | 0:2b4bbe9ea495 | 69 | |
bgrissom | 0:2b4bbe9ea495 | 70 | class ScanGroup { |
bgrissom | 0:2b4bbe9ea495 | 71 | public: |
bgrissom | 0:2b4bbe9ea495 | 72 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 73 | ScanGroup(void); |
bgrissom | 0:2b4bbe9ea495 | 74 | |
bgrissom | 0:2b4bbe9ea495 | 75 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 76 | virtual ~ScanGroup(); |
bgrissom | 0:2b4bbe9ea495 | 77 | |
bgrissom | 0:2b4bbe9ea495 | 78 | // Members |
bgrissom | 0:2b4bbe9ea495 | 79 | ScanGroup *_nextScanGroup; |
bgrissom | 0:2b4bbe9ea495 | 80 | |
bgrissom | 0:2b4bbe9ea495 | 81 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 82 | void mapLEDsToDrivers(void); |
bgrissom | 0:2b4bbe9ea495 | 83 | void addLED(LED *p_led); |
bgrissom | 0:2b4bbe9ea495 | 84 | int getTransistorMCUPinNum(void); |
bgrissom | 0:2b4bbe9ea495 | 85 | |
bgrissom | 0:2b4bbe9ea495 | 86 | |
bgrissom | 0:2b4bbe9ea495 | 87 | private: |
bgrissom | 0:2b4bbe9ea495 | 88 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 89 | uint16_t _transistorMCUPinNum; |
bgrissom | 0:2b4bbe9ea495 | 90 | LED *_LEDs[LEDS_PER_SCANGROUP]; |
bgrissom | 0:2b4bbe9ea495 | 91 | uint16_t _index; // Index into the _LEDs array |
bgrissom | 0:2b4bbe9ea495 | 92 | |
bgrissom | 0:2b4bbe9ea495 | 93 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 94 | }; |
bgrissom | 0:2b4bbe9ea495 | 95 | |
bgrissom | 0:2b4bbe9ea495 | 96 | |
bgrissom | 0:2b4bbe9ea495 | 97 | class PixelColor { |
bgrissom | 0:2b4bbe9ea495 | 98 | public: |
bgrissom | 0:2b4bbe9ea495 | 99 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 100 | PixelColor(void); |
bgrissom | 0:2b4bbe9ea495 | 101 | |
bgrissom | 0:2b4bbe9ea495 | 102 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 103 | virtual ~PixelColor(); |
bgrissom | 0:2b4bbe9ea495 | 104 | |
bgrissom | 0:2b4bbe9ea495 | 105 | // Members |
bgrissom | 0:2b4bbe9ea495 | 106 | uint8_t _r; |
bgrissom | 0:2b4bbe9ea495 | 107 | uint8_t _g; |
bgrissom | 0:2b4bbe9ea495 | 108 | uint8_t _b; |
bgrissom | 0:2b4bbe9ea495 | 109 | |
bgrissom | 0:2b4bbe9ea495 | 110 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 111 | |
bgrissom | 0:2b4bbe9ea495 | 112 | |
bgrissom | 0:2b4bbe9ea495 | 113 | private: |
bgrissom | 0:2b4bbe9ea495 | 114 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 115 | |
bgrissom | 0:2b4bbe9ea495 | 116 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 117 | }; |
bgrissom | 0:2b4bbe9ea495 | 118 | |
bgrissom | 0:2b4bbe9ea495 | 119 | |
bgrissom | 0:2b4bbe9ea495 | 120 | class Image { |
bgrissom | 0:2b4bbe9ea495 | 121 | public: |
bgrissom | 0:2b4bbe9ea495 | 122 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 123 | Image(void); |
bgrissom | 0:2b4bbe9ea495 | 124 | |
bgrissom | 0:2b4bbe9ea495 | 125 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 126 | virtual ~Image(); |
bgrissom | 0:2b4bbe9ea495 | 127 | |
bgrissom | 0:2b4bbe9ea495 | 128 | // Members |
bgrissom | 0:2b4bbe9ea495 | 129 | |
bgrissom | 0:2b4bbe9ea495 | 130 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 131 | PixelColor getPixel(uint16_t x, uint16_t y); |
bgrissom | 0:2b4bbe9ea495 | 132 | void setPixel(uint16_t x, uint16_t y, PixelColor p_pix); |
bgrissom | 0:2b4bbe9ea495 | 133 | |
bgrissom | 0:2b4bbe9ea495 | 134 | |
bgrissom | 0:2b4bbe9ea495 | 135 | private: |
bgrissom | 0:2b4bbe9ea495 | 136 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 137 | PixelColor _imgPixel[MODULE_WIDTH][MODULE_HEIGHT]; |
bgrissom | 0:2b4bbe9ea495 | 138 | |
bgrissom | 0:2b4bbe9ea495 | 139 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 140 | }; |
bgrissom | 0:2b4bbe9ea495 | 141 | |
bgrissom | 0:2b4bbe9ea495 | 142 | |
bgrissom | 0:2b4bbe9ea495 | 143 | class LEDModule { |
bgrissom | 0:2b4bbe9ea495 | 144 | public: |
bgrissom | 0:2b4bbe9ea495 | 145 | // Constructor |
bgrissom | 0:2b4bbe9ea495 | 146 | LEDModule(void); |
bgrissom | 0:2b4bbe9ea495 | 147 | |
bgrissom | 0:2b4bbe9ea495 | 148 | // Default Destructor |
bgrissom | 0:2b4bbe9ea495 | 149 | virtual ~LEDModule(); |
bgrissom | 0:2b4bbe9ea495 | 150 | |
bgrissom | 0:2b4bbe9ea495 | 151 | // Members |
bgrissom | 0:2b4bbe9ea495 | 152 | Image _sourceImage; |
bgrissom | 0:2b4bbe9ea495 | 153 | |
bgrissom | 0:2b4bbe9ea495 | 154 | // Member Functions |
bgrissom | 0:2b4bbe9ea495 | 155 | void displayImage(void); |
bgrissom | 0:2b4bbe9ea495 | 156 | |
bgrissom | 0:2b4bbe9ea495 | 157 | |
bgrissom | 0:2b4bbe9ea495 | 158 | private: |
bgrissom | 0:2b4bbe9ea495 | 159 | // Private Member Variables |
bgrissom | 0:2b4bbe9ea495 | 160 | uint8_t _rowNum; |
bgrissom | 0:2b4bbe9ea495 | 161 | uint8_t _colNum; |
bgrissom | 0:2b4bbe9ea495 | 162 | float _moduleBrightness; |
bgrissom | 0:2b4bbe9ea495 | 163 | float _displayBrightness; |
bgrissom | 0:2b4bbe9ea495 | 164 | ScanGroup _scanGroupArray[NUM_SCANGROUPS]; |
bgrissom | 0:2b4bbe9ea495 | 165 | ScanGroup *_currentScanGroup; |
bgrissom | 0:2b4bbe9ea495 | 166 | ToshibaTC62D723 _ledDriverArray[NUM_LED_DRIVERS]; |
bgrissom | 0:2b4bbe9ea495 | 167 | ToshibaTC62D723 *_dataOutDriver; // This is at the begginging of the chain. |
bgrissom | 0:2b4bbe9ea495 | 168 | // Data is shifted into this driver. |
bgrissom | 0:2b4bbe9ea495 | 169 | ToshibaTC62D723 *_dataInDriver; // This is at the end of the chain. |
bgrissom | 0:2b4bbe9ea495 | 170 | // Error messages are received from this driver. |
bgrissom | 0:2b4bbe9ea495 | 171 | LEDPixel _pixel [MODULE_WIDTH][MODULE_HEIGHT]; |
bgrissom | 0:2b4bbe9ea495 | 172 | |
bgrissom | 0:2b4bbe9ea495 | 173 | // Private Member Functions |
bgrissom | 0:2b4bbe9ea495 | 174 | void adjustImage(void); |
bgrissom | 0:2b4bbe9ea495 | 175 | void shiftBrightnessDataIn(void); |
bgrissom | 0:2b4bbe9ea495 | 176 | void enableNextScanGroup(void); |
bgrissom | 0:2b4bbe9ea495 | 177 | void setPinToValue(int p_pin, int p_val); |
bgrissom | 0:2b4bbe9ea495 | 178 | }; |
bgrissom | 0:2b4bbe9ea495 | 179 | |
bgrissom | 0:2b4bbe9ea495 | 180 | |
bgrissom | 0:2b4bbe9ea495 | 181 | #endif // __ANTHEM_H__ |