]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_STM32L152_Discovery_IAR/ST_Code/STM32L-DISCOVERY/stm32l_discovery_lcd.h
Add STM32L Discovery board project as a starting point to adapt to an RTOS demo.
[freertos] / FreeRTOS / Demo / CORTEX_STM32L152_Discovery_IAR / ST_Code / STM32L-DISCOVERY / stm32l_discovery_lcd.h
1  /**\r
2   ******************************************************************************\r
3   * @file    stm32l_discovery_lcd.h\r
4   * @author  Microcontroller Division\r
5   * @version V1.0.3\r
6   * @date    May-2013\r
7   * @brief   This file contains all the functions prototypes for the glass LCD\r
8   *          firmware driver.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __stm32l_discovery_lcd\r
24 #define __stm32l_discovery_lcd\r
25 \r
26 /* Includes ------------------------------------------------------------------*/\r
27 #include "stm32l1xx.h"   \r
28 #include "discover_board.h"\r
29 \r
30 /* Define for scrolling sentences*/\r
31 #define SCROLL_SPEED    75\r
32 #define SCROLL_SPEED_L  600\r
33 #define SCROLL_NUM      1\r
34 \r
35 /* Define for character '.' */\r
36 #define  POINT_OFF FALSE\r
37 #define  POINT_ON TRUE\r
38 \r
39 /* Define for caracter ":" */\r
40 #define  COLUMN_OFF FALSE\r
41 #define  COLUMN_ON TRUE\r
42 \r
43 #define DOT 0x8000 /* for add decimal point in string */\r
44 #define DOUBLE_DOT 0x4000 /* for add decimal point in string */\r
45 \r
46 \r
47 /*  =========================================================================\r
48                                  LCD MAPPING\r
49     =========================================================================\r
50             A\r
51      _  ----------\r
52 COL |_| |\   |J  /|\r
53        F| H  |  K |B\r
54      _  |  \ | /  |\r
55 COL |_| --G-- --M--\r
56         |   /| \  |\r
57        E|  Q |  N |C\r
58      _  | /  |P  \|   \r
59 DP  |_| -----------  \r
60             D         \r
61 \r
62  An LCD character coding is based on the following matrix:\r
63       { E , D , P , N   }\r
64       { M , C , COL , DP}\r
65       { B , A , K , J   }\r
66       { G , F , Q , H   }\r
67 \r
68  The character 'A' for example is:\r
69   -------------------------------\r
70 LSB   { 1 , 0 , 0 , 0   }\r
71       { 1 , 1 , 0 , 0   }\r
72       { 1 , 1 , 0 , 0   }\r
73 MSB   { 1 , 1 , 0 , 0   }\r
74       -------------------\r
75   'A' =  F    E   0   0 hexa\r
76 \r
77 */\r
78 /* Macros used for set/reset bar LCD bar */\r
79 #define BAR0_ON  t_bar[1] |= 8\r
80 #define BAR0_OFF t_bar[1] &= ~8\r
81 #define BAR1_ON  t_bar[0] |= 8\r
82 #define BAR1_OFF t_bar[0] &= ~8\r
83 #define BAR2_ON  t_bar[1] |= 2\r
84 #define BAR2_OFF t_bar[1] &= ~2\r
85 #define BAR3_ON t_bar[0]  |= 2 \r
86 #define BAR3_OFF t_bar[0] &= ~2 \r
87 \r
88 /* code for 'µ' character */\r
89 #define C_UMAP 0x6084\r
90 \r
91 /* code for 'm' character */\r
92 #define C_mMap 0xb210\r
93 \r
94 /* code for 'n' character */\r
95 #define C_nMap 0x2210\r
96 \r
97 /* constant code for '*' character */\r
98 #define star 0xA0DD\r
99 \r
100 /* constant code for '-' character */\r
101 #define C_minus 0xA000\r
102 \r
103 /* constant code for '/' */\r
104 #define C_slatch  0x00c0\r
105 \r
106 /* constant code for ° */\r
107 #define C_percent_1 0xec00\r
108 \r
109 /* constant code  for small o */\r
110 #define C_percent_2 0xb300\r
111 \r
112 #define C_full 0xffdd\r
113 \r
114 void LCD_bar(void);\r
115 void LCD_GLASS_Init(void);\r
116 void LCD_GLASS_WriteChar(uint8_t* ch, bool point, bool column,uint8_t position);\r
117 void LCD_GLASS_DisplayString(uint8_t* ptr);\r
118 void LCD_GLASS_DisplayStrDeci(uint16_t* ptr);\r
119 void LCD_GLASS_ClearChar(uint8_t position);\r
120 void LCD_GLASS_Clear(void);\r
121 void LCD_GLASS_ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed);\r
122 void LCD_GLASS_WriteTime(char a, uint8_t posi, bool column);\r
123 void LCD_GLASS_Configure_GPIO(void);\r
124 \r
125 #endif /* stm32l_discovery_lcd*/\r
126 \r
127 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/\r