/** | |
****************************************************************************** | |
* @file stm32l_discovery_lcd.h | |
* @author Microcontroller Division | |
* @version V1.0.3 | |
* @date May-2013 | |
* @brief This file contains all the functions prototypes for the glass LCD | |
* firmware driver. | |
****************************************************************************** | |
* @copy | |
* | |
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS | |
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE | |
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY | |
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING | |
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE | |
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | |
* | |
* <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> | |
*/ | |
/* Define to prevent recursive inclusion -------------------------------------*/ | |
#ifndef __stm32l_discovery_lcd | |
#define __stm32l_discovery_lcd | |
/* Includes ------------------------------------------------------------------*/ | |
#include "stm32l1xx.h" | |
#include "discover_board.h" | |
/* Define for scrolling sentences*/ | |
#define SCROLL_SPEED 75 | |
#define SCROLL_SPEED_L 600 | |
#define SCROLL_NUM 1 | |
/* Define for character '.' */ | |
#define POINT_OFF FALSE | |
#define POINT_ON TRUE | |
/* Define for caracter ":" */ | |
#define COLUMN_OFF FALSE | |
#define COLUMN_ON TRUE | |
#define DOT 0x8000 /* for add decimal point in string */ | |
#define DOUBLE_DOT 0x4000 /* for add decimal point in string */ | |
/* ========================================================================= | |
LCD MAPPING | |
========================================================================= | |
A | |
_ ---------- | |
COL |_| |\ |J /| | |
F| H | K |B | |
_ | \ | / | | |
COL |_| --G-- --M-- | |
| /| \ | | |
E| Q | N |C | |
_ | / |P \| | |
DP |_| ----------- | |
D | |
An LCD character coding is based on the following matrix: | |
{ E , D , P , N } | |
{ M , C , COL , DP} | |
{ B , A , K , J } | |
{ G , F , Q , H } | |
The character 'A' for example is: | |
------------------------------- | |
LSB { 1 , 0 , 0 , 0 } | |
{ 1 , 1 , 0 , 0 } | |
{ 1 , 1 , 0 , 0 } | |
MSB { 1 , 1 , 0 , 0 } | |
------------------- | |
'A' = F E 0 0 hexa | |
*/ | |
/* Macros used for set/reset bar LCD bar */ | |
#define BAR0_ON t_bar[1] |= 8 | |
#define BAR0_OFF t_bar[1] &= ~8 | |
#define BAR1_ON t_bar[0] |= 8 | |
#define BAR1_OFF t_bar[0] &= ~8 | |
#define BAR2_ON t_bar[1] |= 2 | |
#define BAR2_OFF t_bar[1] &= ~2 | |
#define BAR3_ON t_bar[0] |= 2 | |
#define BAR3_OFF t_bar[0] &= ~2 | |
/* code for 'µ' character */ | |
#define C_UMAP 0x6084 | |
/* code for 'm' character */ | |
#define C_mMap 0xb210 | |
/* code for 'n' character */ | |
#define C_nMap 0x2210 | |
/* constant code for '*' character */ | |
#define star 0xA0DD | |
/* constant code for '-' character */ | |
#define C_minus 0xA000 | |
/* constant code for '/' */ | |
#define C_slatch 0x00c0 | |
/* constant code for ° */ | |
#define C_percent_1 0xec00 | |
/* constant code for small o */ | |
#define C_percent_2 0xb300 | |
#define C_full 0xffdd | |
void LCD_bar(void); | |
void LCD_GLASS_Init(void); | |
void LCD_GLASS_WriteChar(uint8_t* ch, bool point, bool column,uint8_t position); | |
void LCD_GLASS_DisplayString(uint8_t* ptr); | |
void LCD_GLASS_DisplayStrDeci(uint16_t* ptr); | |
void LCD_GLASS_ClearChar(uint8_t position); | |
void LCD_GLASS_Clear(void); | |
void LCD_GLASS_ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed); | |
void LCD_GLASS_WriteTime(char a, uint8_t posi, bool column); | |
void LCD_GLASS_Configure_GPIO(void); | |
#endif /* stm32l_discovery_lcd*/ | |
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |