mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Revision:
174:b96e65c34a4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/TARGET_NUVOTON/TARGET_NANO100/device/StdDriver/nano100_lcd.h	Mon Oct 02 15:33:19 2017 +0100
@@ -0,0 +1,225 @@
+/****************************************************************************//**
+ * @file     lcd.h
+ * @version  V1.00
+ * $Revision: 5 $
+ * $Date: 15/06/26 1:30p $
+ * @brief    Nano100 series I2C driver header file
+ *
+ * @note
+ * Copyright (C) 2014 Nuvoton Technology Corp. All rights reserved.
+*****************************************************************************/
+#ifndef __LCD_H__
+#define __LCD_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <stdint.h>
+//#include <stdbool.h>
+
+
+/** @addtogroup NANO100_Device_Driver NANO100 Device Driver
+  @{
+*/
+
+/** @addtogroup NANO100_LCD_Driver LCD Driver
+  @{
+*/
+
+
+/** @addtogroup NANO100_LCD_EXPORTED_CONSTANTS LCD Exported Constants
+  @{
+*/
+
+/// @cond
+/*---------------------------------------------------------------------------------------------------------*/
+/* Macro, type and constant definitions                                                                    */
+/*---------------------------------------------------------------------------------------------------------*/
+
+/// @endcond
+
+#define LCD_FREQ_DIV32      ((uint32_t) 0x00000000) /*!< Clock source (32 or 10KHz) divide by 32 */
+#define LCD_FREQ_DIV64      ((uint32_t) 0x00000010) /*!< Clock source (32 or 10KHz) divide by 64 */
+#define LCD_FREQ_DIV96      ((uint32_t) 0x00000020) /*!< Clock source (32 or 10KHz) divide by 96 */
+#define LCD_FREQ_DIV128     ((uint32_t) 0x00000030) /*!< Clock source (32 or 10KHz) divide by 128 */
+#define LCD_FREQ_DIV192     ((uint32_t) 0x00000040) /*!< Clock source (32 or 10KHz) divide by 192 */
+#define LCD_FREQ_DIV256     ((uint32_t) 0x00000050) /*!< Clock source (32 or 10KHz) divide by 256 */
+#define LCD_FREQ_DIV384     ((uint32_t) 0x00000060) /*!< Clock source (32 or 10KHz) divide by 384 */
+#define LCD_FREQ_DIV512     ((uint32_t) 0x00000070) /*!< Clock source (32 or 10KHz) divide by 512 */
+
+#define LCD_MUX_STATIC      ((uint32_t) 0x00000000) /*!< Static multiplexing */
+#define LCD_MUX_ONE_SECOND  ((uint32_t) 0x00000002) /*!< Duplex multiplexing */
+#define LCD_MUX_ONE_THIRD   ((uint32_t) 0x00000004) /*!< Triplex multiplexing */
+#define LCD_MUX_ONE_FOURTH  ((uint32_t) 0x00000006) /*!< Quadruplex multiplexing */
+#define LCD_MUX_ONE_FIFTH   ((uint32_t) 0x00000008) /*!< 1/5 duty */
+#define LCD_MUX_ONE_SIXTH   ((uint32_t) 0x0000000A) /*!< 1/6 duty */
+
+#define LCD_BIAS_STATIC     ((uint32_t) 0x00000000) /*!< Static bias */
+#define LCD_BIAS_HALF       ((uint32_t) 0x00000002) /*!< 1/2 bias */
+#define LCD_BIAS_THIRD      ((uint32_t) 0x00000004) /*!< 1/3 bias */
+
+#define LCD_CPUMP_DIV1      ((uint32_t) 0x00000000) /*!< Clock source (32 or 10KHz) divide by 1 and is used by analog component */
+#define LCD_CPUMP_DIV2      ((uint32_t) 0x00000800) /*!< Clock source (32 or 10KHz) divide by 2 */
+#define LCD_CPUMP_DIV4      ((uint32_t) 0x00001000) /*!< Clock source (32 or 10KHz) divide by 4 */
+#define LCD_CPUMP_DIV8      ((uint32_t) 0x00001800) /*!< Clock source (32 or 10KHz) divide by 8 */
+#define LCD_CPUMP_DIV16     ((uint32_t) 0x00002000) /*!< Clock source (32 or 10KHz) divide by 16 */
+#define LCD_CPUMP_DIV32     ((uint32_t) 0x00002800) /*!< Clock source (32 or 10KHz) divide by 32 */
+#define LCD_CPUMP_DIV64     ((uint32_t) 0x00003000) /*!< Clock source (32 or 10KHz) divide by 64 */
+#define LCD_CPUMP_DIV128    ((uint32_t) 0x00003800) /*!< Clock source (32 or 10KHz) divide by 128 */
+
+#define LCD_CPVOl_2_6V  ((uint32_t) 0x00000000) /*!< Set charge pump voltage to 2.6 V */
+#define LCD_CPVOl_2_7V  ((uint32_t) 0x00000100) /*!< Set charge pump voltage to 2.7 V */
+#define LCD_CPVOl_2_8V  ((uint32_t) 0x00000200) /*!< Set charge pump voltage to 2.8 V */
+#define LCD_CPVOl_2_9V  ((uint32_t) 0x00000300) /*!< Set charge pump voltage to 2.9 V */
+#define LCD_CPVOl_3V    ((uint32_t) 0x00000400) /*!< Set charge pump voltage to 3 V */
+#define LCD_CPVOl_3_1V  ((uint32_t) 0x00000500) /*!< Set charge pump voltage to 3.1 V */
+#define LCD_CPVOl_3_2V  ((uint32_t) 0x00000600) /*!< Set charge pump voltage to 3.2 V */
+#define LCD_CPVOl_3_3V  ((uint32_t) 0x00000700) /*!< Set charge pump voltage to 3.3 V */
+
+#define LCD_FCPRESC_DIV1 ((uint32_t) 0x00000000)    /*!< Set pre-scale divider value to 1 */
+#define LCD_FCPRESC_DIV2 ((uint32_t) 0x00000004)    /*!< Set pre-scale divider value to 2 */
+#define LCD_FCPRESC_DIV4 ((uint32_t) 0x00000008)    /*!< Set pre-scale divider value to 4 */
+#define LCD_FCPRESC_DIV8 ((uint32_t) 0x0000000C)    /*!< Set pre-scale divider value to 8 */
+
+#define LCD_FRAMECOUNT_INT  ((uint32_t) 0x00000001) /*!< Indicate frame count interrupt */
+#define LCD_POWERDOWN_INT   ((uint32_t) 0x00000002) /*!< Indicate power down interrupt */
+#define LCD_ALL_INT         ((uint32_t) 0x00000003) /*!< Indicate frame count & power down interrupt */
+
+#define ERR_LCD_CAL_BLINK_FAIL      0xFFFF0000              /*!< Specifies that overflow to calculate the blinking frequency */
+
+/*@}*/ /* end of group NANO100_LCD_EXPORTED_CONSTANTS */
+
+
+/** @addtogroup NANO100_LCD_EXPORTED_STRUCTS LCD Exported Structs
+  @{
+*/
+typedef enum {
+    LCD_C_TYPE = 0,          /*!< Select LCD C-Type */
+    LCD_EXTERNAL_R_TYPE = 1, /*!< Select LCD External R-Type */
+    LCD_INTERNAL_R_TYPE = 2, /*!< Select LCD Internal R-Type */
+    LCD_EXTERNAL_C_TYPE = 3  /*!< Select LCD External C-Type */
+} LCD_PanelType;
+
+/*@}*/ /* end of group NANO100_LCD_EXPORTED_STRUCTS */
+
+
+/** @addtogroup NANO100_LCD_EXPORTED_FUNCTIONS LCD Exported Functions
+  @{
+*/
+
+/**
+ *    @brief    Get LCD Power Down interrupt flag.
+ *
+ *    @param    None
+ *
+ *    @return    LCD Power Down interrupt Flag.
+ */
+#define LCD_GET_PD_INT_FLAG()        ((LCD->FCSTS & LCD_FCSTS_PDSTS_Msk) >> LCD_FCSTS_PDSTS_Pos)
+
+/**
+ *    @brief    Clear LCD Power Down interrupt flag.
+ *
+ *    @param    None
+ *
+ *    @return   None.
+ */
+#define LCD_CLR_PD_INT_FLAG()        (LCD->FCSTS = LCD_FCSTS_PDSTS_Msk)
+
+/**
+ *    @brief    Get LCD Frame Count interrupt flag.
+ *
+ *    @param    None
+ *
+ *    @return    LCD Frame Count interrupt Flag.
+ */
+#define LCD_GET_FRAME_CNT_INT_FLAG()  ((LCD->FCSTS & LCD_FCSTS_FCSTS_Msk) >> LCD_FCSTS_FCSTS_Pos)
+
+/**
+ *    @brief    Clear LCD Frame Count interrupt flag.
+ *
+ *    @param    None
+ *
+ *    @return   None.
+ */
+#define LCD_CLR_FRAME_CNT_INT_FLAG()   (LCD->FCSTS = LCD_FCSTS_FCSTS_Msk)
+
+/**
+ *    @brief    Enable LCD Power Down Display function.
+ *
+ *    @param    None
+ *
+ *    @return   None.
+ */
+#define LCD_ENABLE_PD_DISPLAY()    (LCD->CTL |= LCD_CTL_PDDISP_EN_Msk)
+
+/**
+ *    @brief    Disable LCD Power Down Display function.
+ *
+ *    @param    None
+ *
+ *    @return   None.
+ */
+#define LCD_DISABLE_PD_DISPLAY()   (LCD->CTL &= ~LCD_CTL_PDDISP_EN_Msk)
+
+uint32_t LCD_EnableFrameCounter(uint32_t u32Count);
+void LCD_DisableFrameCounter(void);
+uint32_t LCD_EnableBlink(uint32_t u32ms);
+void LCD_DisableBlink(void);
+void LCD_EnableInt(uint32_t IntSrc);
+void LCD_DisableInt(uint32_t IntSrc);
+uint32_t LCD_Open(uint32_t u32DrivingType, uint32_t u32ComNum, uint32_t u32BiasLevel, uint32_t u32FramerateDiv, uint32_t u32DrivingVol);
+void LCD_SetPixel(uint32_t u32Com, uint32_t u32Seg, uint32_t u32OnFlag);
+void LCD_SetAllPixels(uint32_t u32OnOff);
+void LCD_Close(void);
+
+/**
+ *  @brief Enable LCD controller
+ *
+ *  @param None
+ *
+ *  @return None
+ *
+ */
+static __INLINE void LCD_EnableDisplay(void)
+{
+    /* Enable LCD */
+    LCD->CTL |= LCD_CTL_EN_Msk;
+}
+
+/**
+ *  @brief Disable LCD controller
+ *
+ *  @param None
+ *
+ *  @return None
+ *
+ */
+static __INLINE void LCD_DisableDisplay(void)
+{
+    /* Enable LCD */
+    LCD->CTL &= ~LCD_CTL_EN_Msk;
+}
+
+
+
+/*@}*/ /* end of group NANO100_LCD_EXPORTED_FUNCTIONS */
+
+
+/*@}*/ /* end of group NANO100_LCD_Driver */
+
+/*@}*/ /* end of group NANO100_Device_Driver */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* __LCD_H__ */
+
+
+
+/*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/
+
+