
segment lcd
stm32l053c8_discovery_glass_lcd.h@0:9db958ee524a, 2019-03-02 (annotated)
- Committer:
- siathon13
- Date:
- Sat Mar 02 07:01:28 2019 +0000
- Revision:
- 0:9db958ee524a
first
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
siathon13 | 0:9db958ee524a | 1 | #ifndef __STM32L476G_DISCOVERY_GLASS_LCD_H |
siathon13 | 0:9db958ee524a | 2 | #define __STM32L476G_DISCOVERY_GLASS_LCD_H |
siathon13 | 0:9db958ee524a | 3 | |
siathon13 | 0:9db958ee524a | 4 | #include "stm32l0xx_hal.h" |
siathon13 | 0:9db958ee524a | 5 | |
siathon13 | 0:9db958ee524a | 6 | #ifdef __cplusplus |
siathon13 | 0:9db958ee524a | 7 | extern "C" { |
siathon13 | 0:9db958ee524a | 8 | #endif |
siathon13 | 0:9db958ee524a | 9 | |
siathon13 | 0:9db958ee524a | 10 | typedef enum{ |
siathon13 | 0:9db958ee524a | 11 | LCD_DIGIT_POSITION_1 = 0, |
siathon13 | 0:9db958ee524a | 12 | LCD_DIGIT_POSITION_2 = 1, |
siathon13 | 0:9db958ee524a | 13 | LCD_DIGIT_POSITION_3 = 2, |
siathon13 | 0:9db958ee524a | 14 | LCD_DIGIT_POSITION_4 = 3, |
siathon13 | 0:9db958ee524a | 15 | LCD_DIGIT_MAX_NUMBER = 4, |
siathon13 | 0:9db958ee524a | 16 | }DigitPosition_Typedef; |
siathon13 | 0:9db958ee524a | 17 | |
siathon13 | 0:9db958ee524a | 18 | /** |
siathon13 | 0:9db958ee524a | 19 | * @brief LCD Glass Double point |
siathon13 | 0:9db958ee524a | 20 | * Warning: element values correspond to LCD Glass Double point. |
siathon13 | 0:9db958ee524a | 21 | */ |
siathon13 | 0:9db958ee524a | 22 | typedef enum{ |
siathon13 | 0:9db958ee524a | 23 | DOUBLEPOINT_OFF = 0, |
siathon13 | 0:9db958ee524a | 24 | DOUBLEPOINT_ON = 1 |
siathon13 | 0:9db958ee524a | 25 | } DoublePoint_Typedef; |
siathon13 | 0:9db958ee524a | 26 | |
siathon13 | 0:9db958ee524a | 27 | #define COM_PER_DIGIT_NB 2/*!< Specifies number of COM to address a digit */ |
siathon13 | 0:9db958ee524a | 28 | #define SEG_PER_DIGIT_NB 2/*!< Specifies number of SEG to address a digit */ |
siathon13 | 0:9db958ee524a | 29 | |
siathon13 | 0:9db958ee524a | 30 | #define LCD_MAP_CHAR_COM0_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM0_SEG_1ST_SHIFT) |
siathon13 | 0:9db958ee524a | 31 | #define LCD_MAP_CHAR_COM0_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM0_SEG_2ND_SHIFT) |
siathon13 | 0:9db958ee524a | 32 | #define LCD_MAP_CHAR_COM0_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM0_SEG_3RD_SHIFT) |
siathon13 | 0:9db958ee524a | 33 | #define LCD_MAP_CHAR_COM0_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM0_SEG_4TH_SHIFT) |
siathon13 | 0:9db958ee524a | 34 | #define LCD_MAP_CHAR_COM1_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM1_SEG_1ST_SHIFT) |
siathon13 | 0:9db958ee524a | 35 | #define LCD_MAP_CHAR_COM1_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM1_SEG_2ND_SHIFT) |
siathon13 | 0:9db958ee524a | 36 | #define LCD_MAP_CHAR_COM1_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM1_SEG_3RD_SHIFT) |
siathon13 | 0:9db958ee524a | 37 | #define LCD_MAP_CHAR_COM1_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM1_SEG_4TH_SHIFT) |
siathon13 | 0:9db958ee524a | 38 | #define LCD_MAP_CHAR_COM0_SEG_1ST_SHIFT 0x00000000 |
siathon13 | 0:9db958ee524a | 39 | #define LCD_MAP_CHAR_COM0_SEG_2ND_SHIFT 0x00000001 |
siathon13 | 0:9db958ee524a | 40 | #define LCD_MAP_CHAR_COM0_SEG_3RD_SHIFT 0x00000002 |
siathon13 | 0:9db958ee524a | 41 | #define LCD_MAP_CHAR_COM0_SEG_4TH_SHIFT 0x00000003 |
siathon13 | 0:9db958ee524a | 42 | #define LCD_MAP_CHAR_COM1_SEG_1ST_SHIFT 0x00000004 |
siathon13 | 0:9db958ee524a | 43 | #define LCD_MAP_CHAR_COM1_SEG_2ND_SHIFT 0x00000005 |
siathon13 | 0:9db958ee524a | 44 | #define LCD_MAP_CHAR_COM1_SEG_3RD_SHIFT 0x00000006 |
siathon13 | 0:9db958ee524a | 45 | #define LCD_MAP_CHAR_COM1_SEG_4TH_SHIFT 0x00000007 |
siathon13 | 0:9db958ee524a | 46 | |
siathon13 | 0:9db958ee524a | 47 | /** |
siathon13 | 0:9db958ee524a | 48 | * @brief LCD Digit defines |
siathon13 | 0:9db958ee524a | 49 | */ |
siathon13 | 0:9db958ee524a | 50 | #define LCD_DIGIT1_COM0 LCD_COM0 |
siathon13 | 0:9db958ee524a | 51 | #define LCD_DIGIT1_COM0_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG2 | LCD_SEG3) |
siathon13 | 0:9db958ee524a | 52 | #define LCD_DIGIT1_COM1 LCD_COM1 |
siathon13 | 0:9db958ee524a | 53 | #define LCD_DIGIT1_COM1_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG2 | LCD_SEG3) |
siathon13 | 0:9db958ee524a | 54 | |
siathon13 | 0:9db958ee524a | 55 | #define LCD_COM0 MCU_LCD_COM0 |
siathon13 | 0:9db958ee524a | 56 | #define LCD_COM0_1 MCU_LCD_COM0_1 |
siathon13 | 0:9db958ee524a | 57 | #define LCD_COM1 MCU_LCD_COM1 |
siathon13 | 0:9db958ee524a | 58 | #define LCD_COM1_1 MCU_LCD_COM1_1 |
siathon13 | 0:9db958ee524a | 59 | |
siathon13 | 0:9db958ee524a | 60 | #define LCD_SEG0 MCU_LCD_SEG0 |
siathon13 | 0:9db958ee524a | 61 | #define LCD_SEG1 MCU_LCD_SEG1 |
siathon13 | 0:9db958ee524a | 62 | #define LCD_SEG2 MCU_LCD_SEG2 |
siathon13 | 0:9db958ee524a | 63 | #define LCD_SEG3 MCU_LCD_SEG3 |
siathon13 | 0:9db958ee524a | 64 | |
siathon13 | 0:9db958ee524a | 65 | #define LCD_SEG0_SHIFT MCU_LCD_SEG0_SHIFT |
siathon13 | 0:9db958ee524a | 66 | #define LCD_SEG1_SHIFT MCU_LCD_SEG1_SHIFT |
siathon13 | 0:9db958ee524a | 67 | #define LCD_SEG2_SHIFT MCU_LCD_SEG2_SHIFT |
siathon13 | 0:9db958ee524a | 68 | #define LCD_SEG3_SHIFT MCU_LCD_SEG3_SHIFT |
siathon13 | 0:9db958ee524a | 69 | |
siathon13 | 0:9db958ee524a | 70 | #define MCU_LCD_COM0 LCD_RAM_REGISTER0 |
siathon13 | 0:9db958ee524a | 71 | #define MCU_LCD_COM0_1 LCD_RAM_REGISTER1 |
siathon13 | 0:9db958ee524a | 72 | #define MCU_LCD_COM1 LCD_RAM_REGISTER2 |
siathon13 | 0:9db958ee524a | 73 | #define MCU_LCD_COM1_1 LCD_RAM_REGISTER3 |
siathon13 | 0:9db958ee524a | 74 | |
siathon13 | 0:9db958ee524a | 75 | #define MCU_LCD_SEG0 (1U << MCU_LCD_SEG0_SHIFT) |
siathon13 | 0:9db958ee524a | 76 | #define MCU_LCD_SEG1 (1U << MCU_LCD_SEG1_SHIFT) |
siathon13 | 0:9db958ee524a | 77 | #define MCU_LCD_SEG2 (1U << MCU_LCD_SEG2_SHIFT) |
siathon13 | 0:9db958ee524a | 78 | #define MCU_LCD_SEG3 (1U << MCU_LCD_SEG3_SHIFT) |
siathon13 | 0:9db958ee524a | 79 | |
siathon13 | 0:9db958ee524a | 80 | #define MCU_LCD_SEG0_SHIFT 0 |
siathon13 | 0:9db958ee524a | 81 | #define MCU_LCD_SEG1_SHIFT 1 |
siathon13 | 0:9db958ee524a | 82 | #define MCU_LCD_SEG2_SHIFT 2 |
siathon13 | 0:9db958ee524a | 83 | #define MCU_LCD_SEG3_SHIFT 3 |
siathon13 | 0:9db958ee524a | 84 | |
siathon13 | 0:9db958ee524a | 85 | /** |
siathon13 | 0:9db958ee524a | 86 | * @brief LCD Pins definition. |
siathon13 | 0:9db958ee524a | 87 | */ |
siathon13 | 0:9db958ee524a | 88 | #define LCD_GPIO_BANKA_PINS (GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_6 | GPIO_PIN_8) |
siathon13 | 0:9db958ee524a | 89 | |
siathon13 | 0:9db958ee524a | 90 | void BSP_LCD_GLASS_Init(void); |
siathon13 | 0:9db958ee524a | 91 | void BSP_LCD_GLASS_DeInit(void); |
siathon13 | 0:9db958ee524a | 92 | void BSP_LCD_GLASS_Clear(void); |
siathon13 | 0:9db958ee524a | 93 | void BSP_LCD_GLASS_WriteDigit(int digit); |
siathon13 | 0:9db958ee524a | 94 | |
siathon13 | 0:9db958ee524a | 95 | #ifdef __cplusplus |
siathon13 | 0:9db958ee524a | 96 | } |
siathon13 | 0:9db958ee524a | 97 | #endif |
siathon13 | 0:9db958ee524a | 98 | |
siathon13 | 0:9db958ee524a | 99 | #endif /* __STM32L476G_DISCOVERY_GLASS_LCD_H */ |