1203 lines
50 KiB
C
1203 lines
50 KiB
C
/*
|
|
* -------------------------------------------
|
|
* MSP432 DriverLib - v3_40_00_10
|
|
* -------------------------------------------
|
|
*
|
|
* --COPYRIGHT--,BSD,BSD
|
|
* Copyright (c) 2016, Texas Instruments Incorporated
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* * Neither the name of Texas Instruments Incorporated nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
* --/COPYRIGHT--*/
|
|
#ifndef LCD_F_H_
|
|
#define LCD_F_H_
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <msp.h>
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \addtogroup lcd_f_api
|
|
//! @{
|
|
//
|
|
//*****************************************************************************
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// If building with a C++ compiler, make all of the definitions in this header
|
|
// have a C binding.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
typedef struct LCD_F_initParam
|
|
{
|
|
//! Selects the clock that will be used by the LCD_F_E.
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_CLOCKSOURCE_XTCLK [Default]
|
|
//! - \b LCD_F_CLOCKSOURCE_ACLK [Default]
|
|
//! - \b LCD_F_CLOCKSOURCE_VLOCLK
|
|
//! - \b LCD_F_CLOCKSOURCE_LFXT
|
|
uint32_t clockSource;
|
|
//! Selects the divider for LCD frequency.
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_CLOCKDIVIDER_1 [Default]
|
|
//! - \b LCD_F_CLOCKDIVIDER_2
|
|
//! - \b LCD_F_CLOCKDIVIDER_3
|
|
//! - \b LCD_F_CLOCKDIVIDER_4
|
|
//! - \b LCD_F_CLOCKDIVIDER_5
|
|
//! - \b LCD_F_CLOCKDIVIDER_6
|
|
//! - \b LCD_F_CLOCKDIVIDER_7
|
|
//! - \b LCD_F_CLOCKDIVIDER_8
|
|
//! - \b LCD_F_CLOCKDIVIDER_9
|
|
//! - \b LCD_F_CLOCKDIVIDER_10
|
|
//! - \b LCD_F_CLOCKDIVIDER_11
|
|
//! - \b LCD_F_CLOCKDIVIDER_12
|
|
//! - \b LCD_F_CLOCKDIVIDER_13
|
|
//! - \b LCD_F_CLOCKDIVIDER_14
|
|
//! - \b LCD_F_CLOCKDIVIDER_15
|
|
//! - \b LCD_F_CLOCKDIVIDER_16
|
|
//! - \b LCD_F_CLOCKDIVIDER_17
|
|
//! - \b LCD_F_CLOCKDIVIDER_18
|
|
//! - \b LCD_F_CLOCKDIVIDER_19
|
|
//! - \b LCD_F_CLOCKDIVIDER_20
|
|
//! - \b LCD_F_CLOCKDIVIDER_21
|
|
//! - \b LCD_F_CLOCKDIVIDER_22
|
|
//! - \b LCD_F_CLOCKDIVIDER_23
|
|
//! - \b LCD_F_CLOCKDIVIDER_24
|
|
//! - \b LCD_F_CLOCKDIVIDER_25
|
|
//! - \b LCD_F_CLOCKDIVIDER_26
|
|
//! - \b LCD_F_CLOCKDIVIDER_27
|
|
//! - \b LCD_F_CLOCKDIVIDER_28
|
|
//! - \b LCD_F_CLOCKDIVIDER_29
|
|
//! - \b LCD_F_CLOCKDIVIDER_30
|
|
//! - \b LCD_F_CLOCKDIVIDER_31
|
|
//! - \b LCD_F_CLOCKDIVIDER_32
|
|
uint32_t clockDivider;
|
|
//! Selects the prescaler
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_CLOCKPRESCALER_1 [Default]
|
|
//! - \b LCD_F_CLOCKPRESCALER_2
|
|
//! - \b LCD_F_CLOCKPRESCALER_4
|
|
//! - \b LCD_F_CLOCKPRESCALER_8
|
|
//! - \b LCD_F_CLOCKPRESCALER_16
|
|
//! - \b LCD_F_CLOCKPRESCALER_32
|
|
uint32_t clockPrescaler;
|
|
//! Selects LCD_F_E mux rate.
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_STATIC [Default]
|
|
//! - \b LCD_F_2_MUX
|
|
//! - \b LCD_F_3_MUX
|
|
//! - \b LCD_F_4_MUX
|
|
//! - \b LCD_F_5_MUX
|
|
//! - \b LCD_F_6_MUX
|
|
//! - \b LCD_F_7_MUX
|
|
//! - \b LCD_F_8_MUX
|
|
uint32_t muxRate;
|
|
//! Selects LCD waveform mode.
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_STANDARD_WAVEFORMS [Default]
|
|
//! - \b LCD_F_LOW_POWER_WAVEFORMS
|
|
uint32_t waveforms;
|
|
//! Sets LCD segment on/off.
|
|
//! \n Valid values are:
|
|
//! - \b LCD_F_SEGMENTS_DISABLED [Default]
|
|
//! - \b LCD_F_SEGMENTS_ENABLED
|
|
uint32_t segments;
|
|
} LCD_F_Config;
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_CLOCKSOURCE_ACLK (LCD_F_CTL_SSEL_0)
|
|
#define LCD_F_CLOCKSOURCE_VLOCLK (LCD_F_CTL_SSEL_1)
|
|
#define LCD_F_CLOCKSOURCE_REFOCLK (LCD_F_CTL_SSEL_2)
|
|
#define LCD_F_CLOCKSOURCE_LFXT (LCD_F_CTL_SSEL_3)
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_CLOCKDIVIDER_1 0x0
|
|
#define LCD_F_CLOCKDIVIDER_2 0x800
|
|
#define LCD_F_CLOCKDIVIDER_3 0x1000
|
|
#define LCD_F_CLOCKDIVIDER_4 0x1800
|
|
#define LCD_F_CLOCKDIVIDER_5 0x2000
|
|
#define LCD_F_CLOCKDIVIDER_6 0x2800
|
|
#define LCD_F_CLOCKDIVIDER_7 0x3000
|
|
#define LCD_F_CLOCKDIVIDER_8 0x3800
|
|
#define LCD_F_CLOCKDIVIDER_9 0x4000
|
|
#define LCD_F_CLOCKDIVIDER_10 0x4800
|
|
#define LCD_F_CLOCKDIVIDER_11 0x5000
|
|
#define LCD_F_CLOCKDIVIDER_12 0x5800
|
|
#define LCD_F_CLOCKDIVIDER_13 0x6000
|
|
#define LCD_F_CLOCKDIVIDER_14 0x6800
|
|
#define LCD_F_CLOCKDIVIDER_15 0x7000
|
|
#define LCD_F_CLOCKDIVIDER_16 0x7800
|
|
#define LCD_F_CLOCKDIVIDER_17 0x8000
|
|
#define LCD_F_CLOCKDIVIDER_18 0x8800
|
|
#define LCD_F_CLOCKDIVIDER_19 0x9000
|
|
#define LCD_F_CLOCKDIVIDER_20 0x9800
|
|
#define LCD_F_CLOCKDIVIDER_21 0xa000
|
|
#define LCD_F_CLOCKDIVIDER_22 0xa800
|
|
#define LCD_F_CLOCKDIVIDER_23 0xb000
|
|
#define LCD_F_CLOCKDIVIDER_24 0xb800
|
|
#define LCD_F_CLOCKDIVIDER_25 0xc000
|
|
#define LCD_F_CLOCKDIVIDER_26 0xc800
|
|
#define LCD_F_CLOCKDIVIDER_27 0xd000
|
|
#define LCD_F_CLOCKDIVIDER_28 0xd800
|
|
#define LCD_F_CLOCKDIVIDER_29 0xe000
|
|
#define LCD_F_CLOCKDIVIDER_30 0xe800
|
|
#define LCD_F_CLOCKDIVIDER_31 0xf000
|
|
#define LCD_F_CLOCKDIVIDER_32 0xf800
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_CLOCKPRESCALER_1 (LCD_F_CTL_PRE_0)
|
|
#define LCD_F_CLOCKPRESCALER_2 (LCD_F_CTL_PRE_1)
|
|
#define LCD_F_CLOCKPRESCALER_4 (LCD_F_CTL_PRE_2)
|
|
#define LCD_F_CLOCKPRESCALER_8 (LCD_F_CTL_PRE_3)
|
|
#define LCD_F_CLOCKPRESCALER_16 (LCD_F_CTL_PRE_4)
|
|
#define LCD_F_CLOCKPRESCALER_32 (LCD_F_CTL_PRE_5)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_STATIC (LCD_F_CTL_MX_0)
|
|
#define LCD_F_2_MUX (LCD_F_CTL_MX_1)
|
|
#define LCD_F_3_MUX (LCD_F_CTL_MX_2)
|
|
#define LCD_F_4_MUX (LCD_F_CTL_MX_3)
|
|
#define LCD_F_5_MUX (LCD_F_CTL_MX_4)
|
|
#define LCD_F_6_MUX (LCD_F_CTL_MX_5)
|
|
#define LCD_F_7_MUX (LCD_F_CTL_MX_6)
|
|
#define LCD_F_8_MUX (LCD_F_CTL_MX_7)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the v2v3v4Source parameter
|
|
// for functions: LCD_F_setVLCDSource().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_V2V3V4_GENERATED_INTERNALLY_NOT_SWITCHED_TO_PINS (0x0)
|
|
#define LCD_F_V2V3V4_GENERATED_INTERNALLY_SWITCHED_TO_PINS (LCD_F_VCPCTL_REXT)
|
|
#define LCD_F_V2V3V4_SOURCED_EXTERNALLY (LCD_F_VCPCTL_EXTBIAS)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the v5Source parameter for
|
|
// functions: LCD_F_setVLCDSource().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_V5_VSS (0x0)
|
|
#define LCD_F_V5_SOURCED_FROM_R03 (LCD_F_VCPCTL_R03EXT)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_STANDARD_WAVEFORMS (0x0)
|
|
#define LCD_F_LOW_POWER_WAVEFORMS (LCD_F_CTL_LP)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the initParams parameter for
|
|
// functions: LCD_F_initModule().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_SEGMENTS_DISABLED (0x0)
|
|
#define LCD_F_SEGMENTS_ENABLED (LCD_F_CTL_SON)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the mask parameter for
|
|
// functions: LCD_F_clearInterrupt(), LCD_F_getInterruptStatus(),
|
|
// LCD_F_enableInterrupt(), and LCD_F_disableInterrupt() as well as returned by
|
|
// the LCD_F_getInterruptStatus() function.
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT (LCD_F_IE_BLKONIE)
|
|
#define LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT (LCD_F_IE_BLKOFFIE)
|
|
#define LCD_F_FRAME_INTERRUPT (LCD_F_IE_FRMIE)
|
|
#define LCD_F_ANIMATION_LOOP_INTERRUPT (LCD_F_IE_ANMLOOPIE)
|
|
#define LCD_F_ANIMATION_STEP_INTERRUPT (LCD_F_IE_ANMSTPIE)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the displayMemory parameter
|
|
// for functions: LCD_F_selectDisplayMemory().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_DISPLAYSOURCE_MEMORY (0x0)
|
|
#define LCD_F_DISPLAYSOURCE_BLINKINGMEMORY (LCD_F_BMCTL_DISP)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the clockPrescalar parameter
|
|
// for functions: LCD_F_setBlinkingControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_512 LCD_F_BMCTL_BLKPRE_0
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_1024 LCD_F_BMCTL_BLKPRE_1
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_2048 LCD_F_BMCTL_BLKPRE_2
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_4096 LCD_F_BMCTL_BLKPRE_3
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_8162 LCD_F_BMCTL_BLKPRE_4
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_16384 LCD_F_BMCTL_BLKPRE_5
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_32768 LCD_F_BMCTL_BLKPRE_6
|
|
#define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_65536 LCD_F_BMCTL_BLKPRE_7
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the clockPrescalar parameter
|
|
// for functions: LCD_F_setBlinkingControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_1 LCD_F_BMCTL_BLKDIV_0
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_2 LCD_F_BMCTL_BLKDIV_1
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_3 LCD_F_BMCTL_BLKDIV_2
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_4 LCD_F_BMCTL_BLKDIV_3
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_5 LCD_F_BMCTL_BLKDIV_4
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_6 LCD_F_BMCTL_BLKDIV_5
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_7 LCD_F_BMCTL_BLKDIV_6
|
|
#define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_8 LCD_F_BMCTL_BLKDIV_7
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the mode parameter for
|
|
// functions: LCD_F_setBlinkingControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_BLINK_MODE_DISABLED (LCD_F_BMCTL_BLKMOD_0)
|
|
#define LCD_F_BLINK_MODE_INDIVIDUAL_SEGMENTS (LCD_F_BMCTL_BLKMOD_1)
|
|
#define LCD_F_BLINK_MODE_ALL_SEGMENTS (LCD_F_BMCTL_BLKMOD_2)
|
|
#define LCD_F_BLINK_MODE_SWITCHING_BETWEEN_DISPLAY_CONTENTS \
|
|
(LCD_F_BMCTL_BLKMOD_3)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the clockPrescalar parameter
|
|
// for functions: LCD_F_setAnimationControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_512 LCD_F_ANMCTL_ANMPRE_0
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_1024 LCD_F_ANMCTL_ANMPRE_1
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_2048 LCD_F_ANMCTL_ANMPRE_2
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_4096 LCD_F_ANMCTL_ANMPRE_3
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_8162 LCD_F_ANMCTL_ANMPRE_4
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_16384 LCD_F_ANMCTL_ANMPRE_5
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_32768 LCD_F_ANMCTL_ANMPRE_6
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_65536 LCD_F_ANMCTL_ANMPRE_7
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the clockPrescalar parameter
|
|
// for functions: LCD_F_setAnimationControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_1 LCD_F_ANMCTL_ANMDIV_0
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_2 LCD_F_ANMCTL_ANMDIV_1
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_3 LCD_F_ANMCTL_ANMDIV_2
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_4 LCD_F_ANMCTL_ANMDIV_3
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_5 LCD_F_ANMCTL_ANMDIV_4
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_6 LCD_F_ANMCTL_ANMDIV_5
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_7 LCD_F_ANMCTL_ANMDIV_6
|
|
#define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_8 LCD_F_ANMCTL_ANMDIV_7
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the mode parameter for
|
|
// functions: LCD_F_setAnimationControl().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T7 LCD_F_ANMCTL_ANMSTP_7
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T6 LCD_F_ANMCTL_ANMSTP_6
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T5 LCD_F_ANMCTL_ANMSTP_5
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T4 LCD_F_ANMCTL_ANMSTP_4
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T3 LCD_F_ANMCTL_ANMSTP_3
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T2 LCD_F_ANMCTL_ANMSTP_2
|
|
#define LCD_F_ANIMATION_FRAMES_T0_TO_T1 LCD_F_ANMCTL_ANMSTP_1
|
|
#define LCD_F_ANIMATION_FRAMES_T0 LCD_F_ANMCTL_ANMSTP_0
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the startPin parameter for
|
|
// functions: LCD_F_setPinsAsLCDFunction(); the endPin parameter for
|
|
// functions: LCD_F_setPinsAsLCDFunction(); the pin parameter for functions:
|
|
// LCD_F_setPinAsLCDFunction(), LCD_F_setPinAsPortFunction(),
|
|
// LCD_F_setPinAsCOM(), and LCD_F_setPinAsSEG().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_SEGMENT_LINE_0 (0)
|
|
#define LCD_F_SEGMENT_LINE_1 (1)
|
|
#define LCD_F_SEGMENT_LINE_2 (2)
|
|
#define LCD_F_SEGMENT_LINE_3 (3)
|
|
#define LCD_F_SEGMENT_LINE_4 (4)
|
|
#define LCD_F_SEGMENT_LINE_5 (5)
|
|
#define LCD_F_SEGMENT_LINE_6 (6)
|
|
#define LCD_F_SEGMENT_LINE_7 (7)
|
|
#define LCD_F_SEGMENT_LINE_8 (8)
|
|
#define LCD_F_SEGMENT_LINE_9 (9)
|
|
#define LCD_F_SEGMENT_LINE_10 (10)
|
|
#define LCD_F_SEGMENT_LINE_11 (11)
|
|
#define LCD_F_SEGMENT_LINE_12 (12)
|
|
#define LCD_F_SEGMENT_LINE_13 (13)
|
|
#define LCD_F_SEGMENT_LINE_14 (14)
|
|
#define LCD_F_SEGMENT_LINE_15 (15)
|
|
#define LCD_F_SEGMENT_LINE_16 (16)
|
|
#define LCD_F_SEGMENT_LINE_17 (17)
|
|
#define LCD_F_SEGMENT_LINE_18 (18)
|
|
#define LCD_F_SEGMENT_LINE_19 (19)
|
|
#define LCD_F_SEGMENT_LINE_20 (20)
|
|
#define LCD_F_SEGMENT_LINE_21 (21)
|
|
#define LCD_F_SEGMENT_LINE_22 (22)
|
|
#define LCD_F_SEGMENT_LINE_23 (23)
|
|
#define LCD_F_SEGMENT_LINE_24 (24)
|
|
#define LCD_F_SEGMENT_LINE_25 (25)
|
|
#define LCD_F_SEGMENT_LINE_26 (26)
|
|
#define LCD_F_SEGMENT_LINE_27 (27)
|
|
#define LCD_F_SEGMENT_LINE_28 (28)
|
|
#define LCD_F_SEGMENT_LINE_29 (29)
|
|
#define LCD_F_SEGMENT_LINE_30 (30)
|
|
#define LCD_F_SEGMENT_LINE_31 (31)
|
|
#define LCD_F_SEGMENT_LINE_32 (32)
|
|
#define LCD_F_SEGMENT_LINE_33 (33)
|
|
#define LCD_F_SEGMENT_LINE_34 (34)
|
|
#define LCD_F_SEGMENT_LINE_35 (35)
|
|
#define LCD_F_SEGMENT_LINE_36 (36)
|
|
#define LCD_F_SEGMENT_LINE_37 (37)
|
|
#define LCD_F_SEGMENT_LINE_38 (38)
|
|
#define LCD_F_SEGMENT_LINE_39 (39)
|
|
#define LCD_F_SEGMENT_LINE_40 (40)
|
|
#define LCD_F_SEGMENT_LINE_41 (41)
|
|
#define LCD_F_SEGMENT_LINE_42 (42)
|
|
#define LCD_F_SEGMENT_LINE_43 (43)
|
|
#define LCD_F_SEGMENT_LINE_44 (44)
|
|
#define LCD_F_SEGMENT_LINE_45 (45)
|
|
#define LCD_F_SEGMENT_LINE_46 (46)
|
|
#define LCD_F_SEGMENT_LINE_47 (47)
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the com parameter for
|
|
// functions: LCD_F_setPinAsCOM().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_MEMORY_COM0 (0x01)
|
|
#define LCD_F_MEMORY_COM1 (0x02)
|
|
#define LCD_F_MEMORY_COM2 (0x04)
|
|
#define LCD_F_MEMORY_COM3 (0x08)
|
|
#define LCD_F_MEMORY_COM4 (0x10)
|
|
#define LCD_F_MEMORY_COM5 (0x20)
|
|
#define LCD_F_MEMORY_COM6 (0x40)
|
|
#define LCD_F_MEMORY_COM7 (0x80)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// The following are values that can be passed to the bias parameter for
|
|
// functions: LCD_F_selectBias().
|
|
//
|
|
//*****************************************************************************
|
|
#define LCD_F_BIAS_1_3 (0x0)
|
|
#define LCD_F_BIAS_1_2 (LCD_F_VCPCTL_LCD2B)
|
|
#define LCD_F_BIAS_1_4 (LCD_F_VCPCTL_LCD2B)
|
|
|
|
/* Internal Macros for indexing */
|
|
#define OFS_LCDM0W 0x120
|
|
#define OFS_LCDBM0W 0x160
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Initializes the LCD_F Module.
|
|
//!
|
|
//! This function initializes the LCD_F but without turning on. It bascially
|
|
//! setup the clock source, clock divider, mux rate, low-power waveform and
|
|
//! segments on/off. After calling this function, user can enable/disable
|
|
//! internal reference voltage or pin SEG/COM configurations.
|
|
//!
|
|
//! \param initParams is the pointer to LCD_F_Config structure.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_initModule(LCD_F_Config *initParams);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Turns on the LCD_F module.
|
|
//!
|
|
//! This function turns the LCD_F on.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_turnOn(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Turns the LCD_F off.
|
|
//!
|
|
//! This function turns the LCD_F off.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_turnOff(void);
|
|
|
|
/* Memory management functions */
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Clears all LCD_F memory registers.
|
|
//!
|
|
//! This function clears all LCD_F memory registers.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_clearAllMemory(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Clears all LCD_F blinking memory registers.
|
|
//!
|
|
//! This function clears all LCD_F blinking memory registers.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_clearAllBlinkingMemory(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Selects display memory.
|
|
//!
|
|
//! This function selects display memory either from memory or blinking memory.
|
|
//! Please note if the blinking mode is selected as
|
|
//! LCD_F_BLINKMODE_INDIVIDUALSEGMENTS or LCD_F_BLINKMODE_ALLSEGMENTS or mux
|
|
//! rate >=5, display memory can not be changed. If
|
|
//! LCD_F_BLINKMODE_SWITCHDISPLAYCONTENTS is selected, display memory bit
|
|
//! reflects current displayed memory.
|
|
//!
|
|
//! \param displayMemory is the desired displayed memory.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_DISPLAYSOURCE_MEMORY [Default]
|
|
//! - \b LCD_F_DISPLAYSOURCE_BLINKINGMEMORY
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_selectDisplayMemory(uint_fast16_t displayMemory);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the blinking control register.
|
|
//!
|
|
//! This function sets the blink control related parameter, including blink
|
|
//! clock frequency prescalar and blink mode.
|
|
//!
|
|
//! \param clockPrescalar is the clock pre-scalar for blinking frequency.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_512 [Default]
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_1024
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_2048
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_4096
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_8162
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_16384
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_32768
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_65536
|
|
//! \param clockDivider is the clock divider for blinking frequency.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_1 [Default]
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_2
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_3
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_4
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_5
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_6
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_7
|
|
//! - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_8
|
|
//! \param mode is the select for blinking mode.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_BLINK_MODE_DISABLED [Default]
|
|
//! - \b LCD_F_BLINK_MODE_INDIVIDUAL_SEGMENTS
|
|
//! - \b LCD_F_BLINK_MODE_ALL_SEGMENTS
|
|
//! - \b LCD_F_BLINK_MODE_SWITCHING_BETWEEN_DISPLAY_CONTENTS
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setBlinkingControl(uint_fast16_t clockPrescalar,
|
|
uint_fast16_t divider, uint_fast16_t mode);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the animation control register.
|
|
//!
|
|
//! This function sets the animation control related parameter, including
|
|
//! animation clock frequency prescalar, divider, and frame settings
|
|
//!
|
|
//! \param clockPrescalar is the clock pre-scalar for animation frequency.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_512 [Default]
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_1024
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_2048
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_4096
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_8162
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_16384
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_32768
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_65536
|
|
//! \param clockDivider is the clock divider for animation frequency.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_1 [Default]
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_2
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_3
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_4
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_5
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_6
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_7
|
|
//! - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_8
|
|
//! \param frames is number of animations frames to be repeated
|
|
//! Valid values are:
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T7
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T6
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T5
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T4
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T3
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T2
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0_TO_T1
|
|
//! - \b LCD_F_ANIMATION_FRAMES_T0
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setAnimationControl(uint_fast16_t clockPrescalar,
|
|
uint_fast16_t divider,
|
|
uint_fast16_t frames);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Enables animation on the LCD_F controller
|
|
//!
|
|
//! This function turns on animation for the LCD_F controller.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_enableAnimation(void);
|
|
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Enables animation on the LCD_F controller
|
|
//!
|
|
//! This function turns on animation for the LCD_F controller.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_disableAnimation(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Clears all LCD_F animation memory registers.
|
|
//!
|
|
//! This function clears all LCD_F animation memory registers.
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_clearAllAnimationMemory(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the LCD_F pins as LCD function pin.
|
|
//!
|
|
//! This function sets the LCD_F pins as LCD function pin.
|
|
//!
|
|
//! \param pin is the select pin set as LCD function.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setPinAsLCDFunction(uint_fast8_t pin);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the LCD_F pins as port function pin.
|
|
//!
|
|
//! \param baseAddress is the base address of the LCD_F module.
|
|
//! \param pin is the select pin set as Port function.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setPinAsPortFunction(uint_fast8_t pin);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the LCD_F pins as LCD function pin.
|
|
//!
|
|
//! This function sets the LCD_F pins as LCD function pin. Instead of passing
|
|
//! the all the possible pins, it just requires the start pin and the end pin.
|
|
//!
|
|
//! \param startPin is the starting pin to be configured as LCD function pin.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//! \param endPin is the ending pin to be configured as LCD function pin.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setPinsAsLCDFunction(uint_fast8_t startPin, uint8_t endPin);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the LCD_F pin as a common line.
|
|
//!
|
|
//! This function sets the LCD_F pin as a common line and assigns the
|
|
//! corresponding memory pin to a specific COM line.
|
|
//!
|
|
//! \param pin is the selected pin to be configured as common line.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//! \param com is the selected COM number for the common line.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_MEMORY_COM0
|
|
//! - \b LCD_F_MEMORY_COM1
|
|
//! - \b LCD_F_MEMORY_COM2
|
|
//! - \b LCD_F_MEMORY_COM3
|
|
//! - \b LCD_F_MEMORY_COM4 - only for 5-Mux/6-Mux/7-Mux/8-Mux
|
|
//! - \b LCD_F_MEMORY_COM5 - only for 5-Mux/6-Mux/7-Mux/8-Mux
|
|
//! - \b LCD_F_MEMORY_COM6 - only for 5-Mux/6-Mux/7-Mux/8-Mux
|
|
//! - \b LCD_F_MEMORY_COM7 - only for 5-Mux/6-Mux/7-Mux/8-Mux
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setPinAsCOM(uint8_t pin, uint_fast8_t com);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the LCD_F pin as a segment line.
|
|
//!
|
|
//! This function sets the LCD_F pin as segment line.
|
|
//!
|
|
//! \param pin is the selected pin to be configed as segment line.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_SEGMENT_LINE_0
|
|
//! - \b LCD_F_SEGMENT_LINE_1
|
|
//! - \b LCD_F_SEGMENT_LINE_2
|
|
//! - \b LCD_F_SEGMENT_LINE_3
|
|
//! - \b LCD_F_SEGMENT_LINE_4
|
|
//! - \b LCD_F_SEGMENT_LINE_5
|
|
//! - \b LCD_F_SEGMENT_LINE_6
|
|
//! - \b LCD_F_SEGMENT_LINE_7
|
|
//! - \b LCD_F_SEGMENT_LINE_8
|
|
//! - \b LCD_F_SEGMENT_LINE_9
|
|
//! - \b LCD_F_SEGMENT_LINE_10
|
|
//! - \b LCD_F_SEGMENT_LINE_11
|
|
//! - \b LCD_F_SEGMENT_LINE_12
|
|
//! - \b LCD_F_SEGMENT_LINE_13
|
|
//! - \b LCD_F_SEGMENT_LINE_14
|
|
//! - \b LCD_F_SEGMENT_LINE_15
|
|
//! - \b LCD_F_SEGMENT_LINE_16
|
|
//! - \b LCD_F_SEGMENT_LINE_17
|
|
//! - \b LCD_F_SEGMENT_LINE_18
|
|
//! - \b LCD_F_SEGMENT_LINE_19
|
|
//! - \b LCD_F_SEGMENT_LINE_20
|
|
//! - \b LCD_F_SEGMENT_LINE_21
|
|
//! - \b LCD_F_SEGMENT_LINE_22
|
|
//! - \b LCD_F_SEGMENT_LINE_23
|
|
//! - \b LCD_F_SEGMENT_LINE_24
|
|
//! - \b LCD_F_SEGMENT_LINE_25
|
|
//! - \b LCD_F_SEGMENT_LINE_26
|
|
//! - \b LCD_F_SEGMENT_LINE_27
|
|
//! - \b LCD_F_SEGMENT_LINE_28
|
|
//! - \b LCD_F_SEGMENT_LINE_29
|
|
//! - \b LCD_F_SEGMENT_LINE_30
|
|
//! - \b LCD_F_SEGMENT_LINE_31
|
|
//! - \b LCD_F_SEGMENT_LINE_32
|
|
//! - \b LCD_F_SEGMENT_LINE_33
|
|
//! - \b LCD_F_SEGMENT_LINE_34
|
|
//! - \b LCD_F_SEGMENT_LINE_35
|
|
//! - \b LCD_F_SEGMENT_LINE_36
|
|
//! - \b LCD_F_SEGMENT_LINE_37
|
|
//! - \b LCD_F_SEGMENT_LINE_38
|
|
//! - \b LCD_F_SEGMENT_LINE_39
|
|
//! - \b LCD_F_SEGMENT_LINE_40
|
|
//! - \b LCD_F_SEGMENT_LINE_41
|
|
//! - \b LCD_F_SEGMENT_LINE_42
|
|
//! - \b LCD_F_SEGMENT_LINE_43
|
|
//! - \b LCD_F_SEGMENT_LINE_44
|
|
//! - \b LCD_F_SEGMENT_LINE_45
|
|
//! - \b LCD_F_SEGMENT_LINE_46
|
|
//! - \b LCD_F_SEGMENT_LINE_47
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setPinAsSEG(uint_fast8_t pin);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Selects the bias level.
|
|
//!
|
|
//! \param bias is the select for bias level.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_BIAS_1_3 [Default] - 1/3 bias
|
|
//! - \b LCD_F_BIAS_1_4 - 1/4 bias
|
|
//! - \b LCD_F_BIAS_1_2 - 1/2 bias
|
|
//!
|
|
//! \note Quarter (1/4) BIAS mode is only available in 5-mux to 8-mux. In
|
|
//! 2-mux to 4-mux modes, this value will result in a third BIAS (1/3)
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_selectBias(uint_fast16_t bias);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Sets the voltage source for V2/V3/V4 and V5.
|
|
//!
|
|
//! \param v2v3v4Source is the V2/V3/V4 source select.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_V2V3V4_GENERATED_INTERNALLY_NOT_SWITCHED_TO_PINS
|
|
//! [Default]
|
|
//! - \b LCD_F_V2V3V4_GENERATED_INTERNALLY_SWITCHED_TO_PINS
|
|
//! - \b LCD_F_V2V3V4_SOURCED_EXTERNALLY
|
|
//! \param v5Source is the V5 source select.
|
|
//! Valid values are:
|
|
//! - \b LCD_F_V5_VSS [Default]
|
|
//! - \b LCD_F_V5_SOURCED_FROM_R03
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_setVLCDSource(uint_fast16_t v2v3v4Source,
|
|
uint_fast16_t v5Source);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Clears the LCD_F selected interrupt flags.
|
|
//!
|
|
//! This function clears the specified interrupt flags.
|
|
//!
|
|
//! \param mask is the masked interrupt flag to be cleared.
|
|
//! Mask value is the logical OR of any of the following:
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
|
|
//! - \b LCD_F_FRAME_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_LOOP_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_STEP_INTERRUPT
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_clearInterrupt(uint32_t mask);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Returns the status of the selected interrupt flags.
|
|
//!
|
|
//! This function returns the status of the selected interrupt flags.
|
|
//!
|
|
//! \return The current interrupt flag status. Can be a logical OR of:
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
|
|
//! - \b LCD_F_FRAME_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_LOOP_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_STEP_INTERRUPT
|
|
//
|
|
//*****************************************************************************
|
|
extern uint32_t LCD_F_getInterruptStatus(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Returns the status of the selected interrupt flags masked with the
|
|
//! currently enabled interrupts.
|
|
//!
|
|
//! \return The current interrupt flag status. Can be a logical OR of:
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
|
|
//! - \b LCD_F_FRAME_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_LOOP_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_STEP_INTERRUPT
|
|
//
|
|
//*****************************************************************************
|
|
extern uint32_t LCD_F_getEnabledInterruptStatus(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Enables the LCD_F selected interrupts
|
|
//!
|
|
//! This function enables the specified interrupts
|
|
//!
|
|
//! \param mask is the variable containing interrupt flags to be enabled.
|
|
//! Mask value is the logical OR of any of the following:
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
|
|
//! - \b LCD_F_FRAME_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_LOOP_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_STEP_INTERRUPT
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_enableInterrupt(uint32_t mask);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! \brief Disables the LCD_F selected interrupts.
|
|
//!
|
|
//! This function disables the specified interrupts.
|
|
//!
|
|
//! \param mask is the variable containing interrupt flags to be disabled
|
|
//! Mask value is the logical OR of any of the following:
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
|
|
//! - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
|
|
//! - \b LCD_F_FRAME_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_LOOP_INTERRUPT
|
|
//! - \b LCD_F_ANIMATION_STEP_INTERRUPT
|
|
//!
|
|
//! \return None
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_disableInterrupt(uint32_t mask);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Registers an interrupt handler for LCD_F interrupt.
|
|
//!
|
|
//! \param intHandler is a pointer to the function to be called when the
|
|
//! LCD_F interrupt occurs.
|
|
//!
|
|
//! This function registers the handler to be called when a LCD_F
|
|
//! interrupt occurs. This function enables the global interrupt in the
|
|
//! interrupt controller; specific LCD_F interrupts must be enabled
|
|
//! via LCD_F_enableInterrupt(). It is the interrupt handler's responsibility
|
|
//! to clear the interrupt source through LCD_F_clearInterruptFlag().
|
|
//!
|
|
//! \return None.
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_registerInterrupt(void (*intHandler)(void));
|
|
|
|
//*****************************************************************************
|
|
//
|
|
//! Unregisters the interrupt handler for the LCD_F interrupt
|
|
//!
|
|
//! This function unregisters the handler to be called when LCD_F
|
|
//! interrupt occurs. This function also masks off the interrupt in the
|
|
//! interrupt controller so that the interrupt handler no longer is called.
|
|
//!
|
|
//! \sa Interrupt_registerInterrupt() for important information about
|
|
//! registering interrupt handlers.
|
|
//!
|
|
//! \return None.
|
|
//
|
|
//*****************************************************************************
|
|
extern void LCD_F_unregisterInterrupt(void);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Mark the end of the C bindings section for C++ compilers.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Close the Doxygen group.
|
|
//! @}
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#endif /* LCD_F_H_ */
|