segment lcd

Dependencies:   mbed

Committer:
siathon13
Date:
Sat Mar 02 07:01:28 2019 +0000
Revision:
0:9db958ee524a
first

Who changed what in which revision?

UserRevisionLine numberNew 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 */