xref: /btstack/port/msp432p401lp-cc256x/ti/devices/msp432p4xx/driverlib/lcd_f.h (revision 5fd0122a3e19d95e11e1f3eb8a08a2b2acb2557e)
1*5fd0122aSMatthias Ringwald /* --COPYRIGHT--,BSD
2*5fd0122aSMatthias Ringwald  * Copyright (c) 2017, Texas Instruments Incorporated
3*5fd0122aSMatthias Ringwald  * All rights reserved.
4*5fd0122aSMatthias Ringwald  *
5*5fd0122aSMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
6*5fd0122aSMatthias Ringwald  * modification, are permitted provided that the following conditions
7*5fd0122aSMatthias Ringwald  * are met:
8*5fd0122aSMatthias Ringwald  *
9*5fd0122aSMatthias Ringwald  * *  Redistributions of source code must retain the above copyright
10*5fd0122aSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
11*5fd0122aSMatthias Ringwald  *
12*5fd0122aSMatthias Ringwald  * *  Redistributions in binary form must reproduce the above copyright
13*5fd0122aSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
14*5fd0122aSMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
15*5fd0122aSMatthias Ringwald  *
16*5fd0122aSMatthias Ringwald  * *  Neither the name of Texas Instruments Incorporated nor the names of
17*5fd0122aSMatthias Ringwald  *    its contributors may be used to endorse or promote products derived
18*5fd0122aSMatthias Ringwald  *    from this software without specific prior written permission.
19*5fd0122aSMatthias Ringwald  *
20*5fd0122aSMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21*5fd0122aSMatthias Ringwald  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22*5fd0122aSMatthias Ringwald  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23*5fd0122aSMatthias Ringwald  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24*5fd0122aSMatthias Ringwald  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25*5fd0122aSMatthias Ringwald  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26*5fd0122aSMatthias Ringwald  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27*5fd0122aSMatthias Ringwald  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28*5fd0122aSMatthias Ringwald  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29*5fd0122aSMatthias Ringwald  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30*5fd0122aSMatthias Ringwald  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*5fd0122aSMatthias Ringwald  * --/COPYRIGHT--*/
32*5fd0122aSMatthias Ringwald #ifndef LCD_F_H_
33*5fd0122aSMatthias Ringwald #define LCD_F_H_
34*5fd0122aSMatthias Ringwald 
35*5fd0122aSMatthias Ringwald #include <stdbool.h>
36*5fd0122aSMatthias Ringwald #include <stdint.h>
37*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/inc/msp.h>
38*5fd0122aSMatthias Ringwald 
39*5fd0122aSMatthias Ringwald /* Define to ensure that our current MSP432 has the LCD_F module. This
40*5fd0122aSMatthias Ringwald     definition is included in the device specific header file */
41*5fd0122aSMatthias Ringwald #ifdef __MCU_HAS_LCD_F__
42*5fd0122aSMatthias Ringwald 
43*5fd0122aSMatthias Ringwald //*****************************************************************************
44*5fd0122aSMatthias Ringwald //
45*5fd0122aSMatthias Ringwald //! \addtogroup lcd_f_api
46*5fd0122aSMatthias Ringwald //! @{
47*5fd0122aSMatthias Ringwald //
48*5fd0122aSMatthias Ringwald //*****************************************************************************
49*5fd0122aSMatthias Ringwald 
50*5fd0122aSMatthias Ringwald //*****************************************************************************
51*5fd0122aSMatthias Ringwald //
52*5fd0122aSMatthias Ringwald // If building with a C++ compiler, make all of the definitions in this header
53*5fd0122aSMatthias Ringwald // have a C binding.
54*5fd0122aSMatthias Ringwald //
55*5fd0122aSMatthias Ringwald //*****************************************************************************
56*5fd0122aSMatthias Ringwald #ifdef __cplusplus
57*5fd0122aSMatthias Ringwald extern "C"
58*5fd0122aSMatthias Ringwald {
59*5fd0122aSMatthias Ringwald #endif
60*5fd0122aSMatthias Ringwald 
61*5fd0122aSMatthias Ringwald typedef struct LCD_F_initParam
62*5fd0122aSMatthias Ringwald {
63*5fd0122aSMatthias Ringwald     //! Selects the clock that will be used by the LCD_F_E.
64*5fd0122aSMatthias Ringwald     //! \n Valid values are:
65*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKSOURCE_XTCLK [Default]
66*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKSOURCE_ACLK [Default]
67*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKSOURCE_VLOCLK
68*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKSOURCE_LFXT
69*5fd0122aSMatthias Ringwald     uint32_t clockSource;
70*5fd0122aSMatthias Ringwald     //! Selects the divider for LCD frequency.
71*5fd0122aSMatthias Ringwald     //! \n Valid values are:
72*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_1 [Default]
73*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_2
74*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_3
75*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_4
76*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_5
77*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_6
78*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_7
79*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_8
80*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_9
81*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_10
82*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_11
83*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_12
84*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_13
85*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_14
86*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_15
87*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_16
88*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_17
89*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_18
90*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_19
91*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_20
92*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_21
93*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_22
94*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_23
95*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_24
96*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_25
97*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_26
98*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_27
99*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_28
100*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_29
101*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_30
102*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_31
103*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKDIVIDER_32
104*5fd0122aSMatthias Ringwald     uint32_t clockDivider;
105*5fd0122aSMatthias Ringwald     //! Selects the prescaler
106*5fd0122aSMatthias Ringwald     //! \n Valid values are:
107*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_1 [Default]
108*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_2
109*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_4
110*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_8
111*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_16
112*5fd0122aSMatthias Ringwald     //! - \b LCD_F_CLOCKPRESCALER_32
113*5fd0122aSMatthias Ringwald     uint32_t clockPrescaler;
114*5fd0122aSMatthias Ringwald     //! Selects LCD_F_E mux rate.
115*5fd0122aSMatthias Ringwald     //! \n Valid values are:
116*5fd0122aSMatthias Ringwald     //! - \b LCD_F_STATIC [Default]
117*5fd0122aSMatthias Ringwald     //! - \b LCD_F_2_MUX
118*5fd0122aSMatthias Ringwald     //! - \b LCD_F_3_MUX
119*5fd0122aSMatthias Ringwald     //! - \b LCD_F_4_MUX
120*5fd0122aSMatthias Ringwald     //! - \b LCD_F_5_MUX
121*5fd0122aSMatthias Ringwald     //! - \b LCD_F_6_MUX
122*5fd0122aSMatthias Ringwald     //! - \b LCD_F_7_MUX
123*5fd0122aSMatthias Ringwald     //! - \b LCD_F_8_MUX
124*5fd0122aSMatthias Ringwald     uint32_t muxRate;
125*5fd0122aSMatthias Ringwald     //! Selects LCD waveform mode.
126*5fd0122aSMatthias Ringwald     //! \n Valid values are:
127*5fd0122aSMatthias Ringwald     //! - \b LCD_F_STANDARD_WAVEFORMS [Default]
128*5fd0122aSMatthias Ringwald     //! - \b LCD_F_LOW_POWER_WAVEFORMS
129*5fd0122aSMatthias Ringwald     uint32_t waveforms;
130*5fd0122aSMatthias Ringwald     //! Sets LCD segment on/off.
131*5fd0122aSMatthias Ringwald     //! \n Valid values are:
132*5fd0122aSMatthias Ringwald     //! - \b LCD_F_SEGMENTS_DISABLED [Default]
133*5fd0122aSMatthias Ringwald     //! - \b LCD_F_SEGMENTS_ENABLED
134*5fd0122aSMatthias Ringwald     uint32_t segments;
135*5fd0122aSMatthias Ringwald } LCD_F_Config;
136*5fd0122aSMatthias Ringwald 
137*5fd0122aSMatthias Ringwald //*****************************************************************************
138*5fd0122aSMatthias Ringwald //
139*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
140*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
141*5fd0122aSMatthias Ringwald //
142*5fd0122aSMatthias Ringwald //*****************************************************************************
143*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKSOURCE_ACLK                               (LCD_F_CTL_SSEL_0)
144*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKSOURCE_VLOCLK                             (LCD_F_CTL_SSEL_1)
145*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKSOURCE_REFOCLK                            (LCD_F_CTL_SSEL_2)
146*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKSOURCE_LFXT                               (LCD_F_CTL_SSEL_3)
147*5fd0122aSMatthias Ringwald 
148*5fd0122aSMatthias Ringwald 
149*5fd0122aSMatthias Ringwald //*****************************************************************************
150*5fd0122aSMatthias Ringwald //
151*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
152*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
153*5fd0122aSMatthias Ringwald //
154*5fd0122aSMatthias Ringwald //*****************************************************************************
155*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_1 0x0
156*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_2 0x800
157*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_3 0x1000
158*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_4 0x1800
159*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_5 0x2000
160*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_6 0x2800
161*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_7 0x3000
162*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_8 0x3800
163*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_9 0x4000
164*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_10 0x4800
165*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_11 0x5000
166*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_12 0x5800
167*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_13 0x6000
168*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_14 0x6800
169*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_15 0x7000
170*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_16 0x7800
171*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_17 0x8000
172*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_18 0x8800
173*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_19 0x9000
174*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_20 0x9800
175*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_21 0xa000
176*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_22 0xa800
177*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_23 0xb000
178*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_24 0xb800
179*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_25 0xc000
180*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_26 0xc800
181*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_27 0xd000
182*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_28 0xd800
183*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_29 0xe000
184*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_30 0xe800
185*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_31 0xf000
186*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKDIVIDER_32 0xf800
187*5fd0122aSMatthias Ringwald 
188*5fd0122aSMatthias Ringwald //*****************************************************************************
189*5fd0122aSMatthias Ringwald //
190*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
191*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
192*5fd0122aSMatthias Ringwald //
193*5fd0122aSMatthias Ringwald //*****************************************************************************
194*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_1                                 (LCD_F_CTL_PRE_0)
195*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_2                                 (LCD_F_CTL_PRE_1)
196*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_4                                 (LCD_F_CTL_PRE_2)
197*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_8                                 (LCD_F_CTL_PRE_3)
198*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_16                                (LCD_F_CTL_PRE_4)
199*5fd0122aSMatthias Ringwald #define LCD_F_CLOCKPRESCALER_32                                (LCD_F_CTL_PRE_5)
200*5fd0122aSMatthias Ringwald 
201*5fd0122aSMatthias Ringwald //*****************************************************************************
202*5fd0122aSMatthias Ringwald //
203*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
204*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
205*5fd0122aSMatthias Ringwald //
206*5fd0122aSMatthias Ringwald //*****************************************************************************
207*5fd0122aSMatthias Ringwald #define LCD_F_STATIC                                            (LCD_F_CTL_MX_0)
208*5fd0122aSMatthias Ringwald #define LCD_F_2_MUX                                             (LCD_F_CTL_MX_1)
209*5fd0122aSMatthias Ringwald #define LCD_F_3_MUX                                             (LCD_F_CTL_MX_2)
210*5fd0122aSMatthias Ringwald #define LCD_F_4_MUX                                             (LCD_F_CTL_MX_3)
211*5fd0122aSMatthias Ringwald #define LCD_F_5_MUX                                             (LCD_F_CTL_MX_4)
212*5fd0122aSMatthias Ringwald #define LCD_F_6_MUX                                             (LCD_F_CTL_MX_5)
213*5fd0122aSMatthias Ringwald #define LCD_F_7_MUX                                             (LCD_F_CTL_MX_6)
214*5fd0122aSMatthias Ringwald #define LCD_F_8_MUX                                             (LCD_F_CTL_MX_7)
215*5fd0122aSMatthias Ringwald 
216*5fd0122aSMatthias Ringwald //*****************************************************************************
217*5fd0122aSMatthias Ringwald //
218*5fd0122aSMatthias Ringwald // The following are values that can be passed to the v2v3v4Source parameter
219*5fd0122aSMatthias Ringwald // for functions: LCD_F_setVLCDSource().
220*5fd0122aSMatthias Ringwald //
221*5fd0122aSMatthias Ringwald //*****************************************************************************
222*5fd0122aSMatthias Ringwald #define LCD_F_V2V3V4_GENERATED_INTERNALLY_NOT_SWITCHED_TO_PINS            (0x0)
223*5fd0122aSMatthias Ringwald #define LCD_F_V2V3V4_GENERATED_INTERNALLY_SWITCHED_TO_PINS  (LCD_F_VCTL_REXT)
224*5fd0122aSMatthias Ringwald #define LCD_F_V2V3V4_SOURCED_EXTERNALLY                  (LCD_F_VCTL_EXTBIAS)
225*5fd0122aSMatthias Ringwald 
226*5fd0122aSMatthias Ringwald //*****************************************************************************
227*5fd0122aSMatthias Ringwald //
228*5fd0122aSMatthias Ringwald // The following are values that can be passed to the v5Source parameter for
229*5fd0122aSMatthias Ringwald // functions: LCD_F_setVLCDSource().
230*5fd0122aSMatthias Ringwald //
231*5fd0122aSMatthias Ringwald //*****************************************************************************
232*5fd0122aSMatthias Ringwald #define LCD_F_V5_VSS                                                      (0x0)
233*5fd0122aSMatthias Ringwald #define LCD_F_V5_SOURCED_FROM_R03                         (LCD_F_VCTL_R03EXT)
234*5fd0122aSMatthias Ringwald 
235*5fd0122aSMatthias Ringwald //*****************************************************************************
236*5fd0122aSMatthias Ringwald //
237*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
238*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
239*5fd0122aSMatthias Ringwald //
240*5fd0122aSMatthias Ringwald //*****************************************************************************
241*5fd0122aSMatthias Ringwald #define LCD_F_STANDARD_WAVEFORMS                                          (0x0)
242*5fd0122aSMatthias Ringwald #define LCD_F_LOW_POWER_WAVEFORMS                                 (LCD_F_CTL_LP)
243*5fd0122aSMatthias Ringwald 
244*5fd0122aSMatthias Ringwald //*****************************************************************************
245*5fd0122aSMatthias Ringwald //
246*5fd0122aSMatthias Ringwald // The following are values that can be passed to the initParams parameter for
247*5fd0122aSMatthias Ringwald // functions: LCD_F_initModule().
248*5fd0122aSMatthias Ringwald //
249*5fd0122aSMatthias Ringwald //*****************************************************************************
250*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENTS_DISABLED                                           (0x0)
251*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENTS_ENABLED                                   (LCD_F_CTL_SON)
252*5fd0122aSMatthias Ringwald 
253*5fd0122aSMatthias Ringwald //*****************************************************************************
254*5fd0122aSMatthias Ringwald //
255*5fd0122aSMatthias Ringwald // The following are values that can be passed to the mask parameter for
256*5fd0122aSMatthias Ringwald // functions: LCD_F_clearInterrupt(), LCD_F_getInterruptStatus(),
257*5fd0122aSMatthias Ringwald // LCD_F_enableInterrupt(), and LCD_F_disableInterrupt() as well as returned by
258*5fd0122aSMatthias Ringwald // the LCD_F_getInterruptStatus() function.
259*5fd0122aSMatthias Ringwald //
260*5fd0122aSMatthias Ringwald //*****************************************************************************
261*5fd0122aSMatthias Ringwald #define LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT                  (LCD_F_IE_BLKONIE)
262*5fd0122aSMatthias Ringwald #define LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT                (LCD_F_IE_BLKOFFIE)
263*5fd0122aSMatthias Ringwald #define LCD_F_FRAME_INTERRUPT                                   (LCD_F_IE_FRMIE)
264*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_LOOP_INTERRUPT                      (LCD_F_IE_ANMLOOPIE)
265*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_STEP_INTERRUPT                       (LCD_F_IE_ANMSTPIE)
266*5fd0122aSMatthias Ringwald 
267*5fd0122aSMatthias Ringwald //*****************************************************************************
268*5fd0122aSMatthias Ringwald //
269*5fd0122aSMatthias Ringwald // The following are values that can be passed to the displayMemory parameter
270*5fd0122aSMatthias Ringwald // for functions: LCD_F_selectDisplayMemory().
271*5fd0122aSMatthias Ringwald //
272*5fd0122aSMatthias Ringwald //*****************************************************************************
273*5fd0122aSMatthias Ringwald #define LCD_F_DISPLAYSOURCE_MEMORY                                        (0x0)
274*5fd0122aSMatthias Ringwald #define LCD_F_DISPLAYSOURCE_BLINKINGMEMORY                                (0x1)
275*5fd0122aSMatthias Ringwald 
276*5fd0122aSMatthias Ringwald //*****************************************************************************
277*5fd0122aSMatthias Ringwald //
278*5fd0122aSMatthias Ringwald // The following are values that can be passed to the clockPrescalar parameter
279*5fd0122aSMatthias Ringwald // for functions: LCD_F_setBlinkingControl().
280*5fd0122aSMatthias Ringwald //
281*5fd0122aSMatthias Ringwald //*****************************************************************************
282*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_512                LCD_F_BMCTL_BLKPRE_0
283*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_1024               LCD_F_BMCTL_BLKPRE_1
284*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_2048               LCD_F_BMCTL_BLKPRE_2
285*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_4096               LCD_F_BMCTL_BLKPRE_3
286*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_8162               LCD_F_BMCTL_BLKPRE_4
287*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_16384              LCD_F_BMCTL_BLKPRE_5
288*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_32768              LCD_F_BMCTL_BLKPRE_6
289*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_65536              LCD_F_BMCTL_BLKPRE_7
290*5fd0122aSMatthias Ringwald 
291*5fd0122aSMatthias Ringwald //*****************************************************************************
292*5fd0122aSMatthias Ringwald //
293*5fd0122aSMatthias Ringwald // The following are values that can be passed to the clockPrescalar parameter
294*5fd0122aSMatthias Ringwald // for functions: LCD_F_setBlinkingControl().
295*5fd0122aSMatthias Ringwald //
296*5fd0122aSMatthias Ringwald //*****************************************************************************
297*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_1                   LCD_F_BMCTL_BLKDIV_0
298*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_2                   LCD_F_BMCTL_BLKDIV_1
299*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_3                   LCD_F_BMCTL_BLKDIV_2
300*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_4                   LCD_F_BMCTL_BLKDIV_3
301*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_5                   LCD_F_BMCTL_BLKDIV_4
302*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_6                   LCD_F_BMCTL_BLKDIV_5
303*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_7                   LCD_F_BMCTL_BLKDIV_6
304*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_8                   LCD_F_BMCTL_BLKDIV_7
305*5fd0122aSMatthias Ringwald 
306*5fd0122aSMatthias Ringwald //*****************************************************************************
307*5fd0122aSMatthias Ringwald //
308*5fd0122aSMatthias Ringwald // The following are values that can be passed to the mode parameter for
309*5fd0122aSMatthias Ringwald // functions: LCD_F_setBlinkingControl().
310*5fd0122aSMatthias Ringwald //
311*5fd0122aSMatthias Ringwald //*****************************************************************************
312*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_MODE_DISABLED                         (LCD_F_BMCTL_BLKMOD_0)
313*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_MODE_INDIVIDUAL_SEGMENTS              (LCD_F_BMCTL_BLKMOD_1)
314*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_MODE_ALL_SEGMENTS                     (LCD_F_BMCTL_BLKMOD_2)
315*5fd0122aSMatthias Ringwald #define LCD_F_BLINK_MODE_SWITCHING_BETWEEN_DISPLAY_CONTENTS \
316*5fd0122aSMatthias Ringwald                                                           (LCD_F_BMCTL_BLKMOD_3)
317*5fd0122aSMatthias Ringwald 
318*5fd0122aSMatthias Ringwald //*****************************************************************************
319*5fd0122aSMatthias Ringwald //
320*5fd0122aSMatthias Ringwald // The following are values that can be passed to the clockPrescalar parameter
321*5fd0122aSMatthias Ringwald // for functions: LCD_F_setAnimationControl().
322*5fd0122aSMatthias Ringwald //
323*5fd0122aSMatthias Ringwald //*****************************************************************************
324*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_512          LCD_F_ANMCTL_ANMPRE_0
325*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_1024         LCD_F_ANMCTL_ANMPRE_1
326*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_2048         LCD_F_ANMCTL_ANMPRE_2
327*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_4096         LCD_F_ANMCTL_ANMPRE_3
328*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_8162         LCD_F_ANMCTL_ANMPRE_4
329*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_16384        LCD_F_ANMCTL_ANMPRE_5
330*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_32768        LCD_F_ANMCTL_ANMPRE_6
331*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_65536        LCD_F_ANMCTL_ANMPRE_7
332*5fd0122aSMatthias Ringwald 
333*5fd0122aSMatthias Ringwald //*****************************************************************************
334*5fd0122aSMatthias Ringwald //
335*5fd0122aSMatthias Ringwald // The following are values that can be passed to the clockPrescalar parameter
336*5fd0122aSMatthias Ringwald // for functions: LCD_F_setAnimationControl().
337*5fd0122aSMatthias Ringwald //
338*5fd0122aSMatthias Ringwald //*****************************************************************************
339*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_1              LCD_F_ANMCTL_ANMDIV_0
340*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_2              LCD_F_ANMCTL_ANMDIV_1
341*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_3              LCD_F_ANMCTL_ANMDIV_2
342*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_4              LCD_F_ANMCTL_ANMDIV_3
343*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_5              LCD_F_ANMCTL_ANMDIV_4
344*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_6              LCD_F_ANMCTL_ANMDIV_5
345*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_7              LCD_F_ANMCTL_ANMDIV_6
346*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_8              LCD_F_ANMCTL_ANMDIV_7
347*5fd0122aSMatthias Ringwald 
348*5fd0122aSMatthias Ringwald //*****************************************************************************
349*5fd0122aSMatthias Ringwald //
350*5fd0122aSMatthias Ringwald // The following are values that can be passed to the mode parameter for
351*5fd0122aSMatthias Ringwald // functions: LCD_F_setAnimationControl().
352*5fd0122aSMatthias Ringwald //
353*5fd0122aSMatthias Ringwald //*****************************************************************************
354*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T7                   LCD_F_ANMCTL_ANMSTP_7
355*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T6                   LCD_F_ANMCTL_ANMSTP_6
356*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T5                   LCD_F_ANMCTL_ANMSTP_5
357*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T4                   LCD_F_ANMCTL_ANMSTP_4
358*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T3                   LCD_F_ANMCTL_ANMSTP_3
359*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T2                   LCD_F_ANMCTL_ANMSTP_2
360*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0_TO_T1                   LCD_F_ANMCTL_ANMSTP_1
361*5fd0122aSMatthias Ringwald #define LCD_F_ANIMATION_FRAMES_T0                         LCD_F_ANMCTL_ANMSTP_0
362*5fd0122aSMatthias Ringwald 
363*5fd0122aSMatthias Ringwald //*****************************************************************************
364*5fd0122aSMatthias Ringwald //
365*5fd0122aSMatthias Ringwald // The following are values that can be passed to the startPin parameter for
366*5fd0122aSMatthias Ringwald // functions: LCD_F_setPinsAsLCDFunction(); the endPin parameter for
367*5fd0122aSMatthias Ringwald // functions: LCD_F_setPinsAsLCDFunction(); the pin parameter for functions:
368*5fd0122aSMatthias Ringwald // LCD_F_setPinAsLCDFunction(), LCD_F_setPinAsPortFunction(),
369*5fd0122aSMatthias Ringwald // LCD_F_setPinAsCOM(), and LCD_F_setPinAsSEG().
370*5fd0122aSMatthias Ringwald //
371*5fd0122aSMatthias Ringwald //*****************************************************************************
372*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_0                                                (0)
373*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_1                                                (1)
374*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_2                                                (2)
375*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_3                                                (3)
376*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_4                                                (4)
377*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_5                                                (5)
378*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_6                                                (6)
379*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_7                                                (7)
380*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_8                                                (8)
381*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_9                                                (9)
382*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_10                                              (10)
383*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_11                                              (11)
384*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_12                                              (12)
385*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_13                                              (13)
386*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_14                                              (14)
387*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_15                                              (15)
388*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_16                                              (16)
389*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_17                                              (17)
390*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_18                                              (18)
391*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_19                                              (19)
392*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_20                                              (20)
393*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_21                                              (21)
394*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_22                                              (22)
395*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_23                                              (23)
396*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_24                                              (24)
397*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_25                                              (25)
398*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_26                                              (26)
399*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_27                                              (27)
400*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_28                                              (28)
401*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_29                                              (29)
402*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_30                                              (30)
403*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_31                                              (31)
404*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_32                                              (32)
405*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_33                                              (33)
406*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_34                                              (34)
407*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_35                                              (35)
408*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_36                                              (36)
409*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_37                                              (37)
410*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_38                                              (38)
411*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_39                                              (39)
412*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_40                                              (40)
413*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_41                                              (41)
414*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_42                                              (42)
415*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_43                                              (43)
416*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_44                                              (44)
417*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_45                                              (45)
418*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_46                                              (46)
419*5fd0122aSMatthias Ringwald #define LCD_F_SEGMENT_LINE_47                                              (47)
420*5fd0122aSMatthias Ringwald 
421*5fd0122aSMatthias Ringwald 
422*5fd0122aSMatthias Ringwald //*****************************************************************************
423*5fd0122aSMatthias Ringwald //
424*5fd0122aSMatthias Ringwald // The following are values that can be passed to the com parameter for
425*5fd0122aSMatthias Ringwald // functions: LCD_F_setPinAsCOM().
426*5fd0122aSMatthias Ringwald //
427*5fd0122aSMatthias Ringwald //*****************************************************************************
428*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM0                                                (0x01)
429*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM1                                                (0x02)
430*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM2                                                (0x04)
431*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM3                                                (0x08)
432*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM4                                                (0x10)
433*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM5                                                (0x20)
434*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM6                                                (0x40)
435*5fd0122aSMatthias Ringwald #define LCD_F_MEMORY_COM7                                                (0x80)
436*5fd0122aSMatthias Ringwald 
437*5fd0122aSMatthias Ringwald //*****************************************************************************
438*5fd0122aSMatthias Ringwald //
439*5fd0122aSMatthias Ringwald // The following are values that can be passed to the bias parameter for
440*5fd0122aSMatthias Ringwald // functions: LCD_F_selectBias().
441*5fd0122aSMatthias Ringwald //
442*5fd0122aSMatthias Ringwald //*****************************************************************************
443*5fd0122aSMatthias Ringwald #define LCD_F_BIAS_1_3                                                    (0x0)
444*5fd0122aSMatthias Ringwald #define LCD_F_BIAS_1_2                                     (LCD_F_VCTL_LCD2B)
445*5fd0122aSMatthias Ringwald #define LCD_F_BIAS_1_4                                     (LCD_F_VCTL_LCD2B)
446*5fd0122aSMatthias Ringwald 
447*5fd0122aSMatthias Ringwald /* Internal Macros for indexing */
448*5fd0122aSMatthias Ringwald #define OFS_LCDM0W                                                        0x120
449*5fd0122aSMatthias Ringwald #define OFS_LCDBM0W                                                       0x160
450*5fd0122aSMatthias Ringwald 
451*5fd0122aSMatthias Ringwald //*****************************************************************************
452*5fd0122aSMatthias Ringwald //
453*5fd0122aSMatthias Ringwald //! \brief Initializes the LCD_F Module.
454*5fd0122aSMatthias Ringwald //!
455*5fd0122aSMatthias Ringwald //! This function initializes the LCD_F but without turning on. It bascially
456*5fd0122aSMatthias Ringwald //! setup the clock source, clock divider, mux rate, low-power waveform and
457*5fd0122aSMatthias Ringwald //! segments on/off. After calling this function, user can enable/disable
458*5fd0122aSMatthias Ringwald //! internal reference voltage or pin SEG/COM configurations.
459*5fd0122aSMatthias Ringwald //!
460*5fd0122aSMatthias Ringwald //! \param initParams is the pointer to  LCD_F_Config structure.
461*5fd0122aSMatthias Ringwald //!
462*5fd0122aSMatthias Ringwald //! \return None
463*5fd0122aSMatthias Ringwald //
464*5fd0122aSMatthias Ringwald //*****************************************************************************
465*5fd0122aSMatthias Ringwald extern void LCD_F_initModule(LCD_F_Config *initParams);
466*5fd0122aSMatthias Ringwald 
467*5fd0122aSMatthias Ringwald //*****************************************************************************
468*5fd0122aSMatthias Ringwald //
469*5fd0122aSMatthias Ringwald //! \brief Turns on the LCD_F module.
470*5fd0122aSMatthias Ringwald //!
471*5fd0122aSMatthias Ringwald //! This function turns the LCD_F on.
472*5fd0122aSMatthias Ringwald //!
473*5fd0122aSMatthias Ringwald //! \return None
474*5fd0122aSMatthias Ringwald //
475*5fd0122aSMatthias Ringwald //*****************************************************************************
476*5fd0122aSMatthias Ringwald extern void LCD_F_turnOn(void);
477*5fd0122aSMatthias Ringwald 
478*5fd0122aSMatthias Ringwald //*****************************************************************************
479*5fd0122aSMatthias Ringwald //
480*5fd0122aSMatthias Ringwald //! \brief Turns the LCD_F off.
481*5fd0122aSMatthias Ringwald //!
482*5fd0122aSMatthias Ringwald //! This function turns the LCD_F off.
483*5fd0122aSMatthias Ringwald //!
484*5fd0122aSMatthias Ringwald //! \return None
485*5fd0122aSMatthias Ringwald //
486*5fd0122aSMatthias Ringwald //*****************************************************************************
487*5fd0122aSMatthias Ringwald extern void LCD_F_turnOff(void);
488*5fd0122aSMatthias Ringwald 
489*5fd0122aSMatthias Ringwald /* Memory management functions */
490*5fd0122aSMatthias Ringwald 
491*5fd0122aSMatthias Ringwald //*****************************************************************************
492*5fd0122aSMatthias Ringwald //
493*5fd0122aSMatthias Ringwald //! \brief Clears all LCD_F memory registers.
494*5fd0122aSMatthias Ringwald //!
495*5fd0122aSMatthias Ringwald //! This function clears all LCD_F memory registers.
496*5fd0122aSMatthias Ringwald //!
497*5fd0122aSMatthias Ringwald //! \return None
498*5fd0122aSMatthias Ringwald //
499*5fd0122aSMatthias Ringwald //*****************************************************************************
500*5fd0122aSMatthias Ringwald extern void LCD_F_clearAllMemory(void);
501*5fd0122aSMatthias Ringwald 
502*5fd0122aSMatthias Ringwald //*****************************************************************************
503*5fd0122aSMatthias Ringwald //
504*5fd0122aSMatthias Ringwald //! \brief Clears all LCD_F blinking memory registers.
505*5fd0122aSMatthias Ringwald //!
506*5fd0122aSMatthias Ringwald //! This function clears all LCD_F blinking memory registers.
507*5fd0122aSMatthias Ringwald //!
508*5fd0122aSMatthias Ringwald //! \return None
509*5fd0122aSMatthias Ringwald //
510*5fd0122aSMatthias Ringwald //*****************************************************************************
511*5fd0122aSMatthias Ringwald extern void LCD_F_clearAllBlinkingMemory(void);
512*5fd0122aSMatthias Ringwald 
513*5fd0122aSMatthias Ringwald //*****************************************************************************
514*5fd0122aSMatthias Ringwald //
515*5fd0122aSMatthias Ringwald //! \brief Selects display memory.
516*5fd0122aSMatthias Ringwald //!
517*5fd0122aSMatthias Ringwald //! This function selects display memory either from memory or blinking memory.
518*5fd0122aSMatthias Ringwald //! Please note if the blinking mode is selected as
519*5fd0122aSMatthias Ringwald //! LCD_F_BLINKMODE_INDIVIDUALSEGMENTS or LCD_F_BLINKMODE_ALLSEGMENTS or mux
520*5fd0122aSMatthias Ringwald //! rate >=5, display memory can not be changed. If
521*5fd0122aSMatthias Ringwald //! LCD_F_BLINKMODE_SWITCHDISPLAYCONTENTS is selected, display memory bit
522*5fd0122aSMatthias Ringwald //! reflects current displayed memory.
523*5fd0122aSMatthias Ringwald //!
524*5fd0122aSMatthias Ringwald //! \param displayMemory is the desired displayed memory.
525*5fd0122aSMatthias Ringwald //!        Valid values are:
526*5fd0122aSMatthias Ringwald //!        - \b LCD_F_DISPLAYSOURCE_MEMORY [Default]
527*5fd0122aSMatthias Ringwald //!        - \b LCD_F_DISPLAYSOURCE_BLINKINGMEMORY
528*5fd0122aSMatthias Ringwald //!
529*5fd0122aSMatthias Ringwald //! \return None
530*5fd0122aSMatthias Ringwald //
531*5fd0122aSMatthias Ringwald //*****************************************************************************
532*5fd0122aSMatthias Ringwald extern void LCD_F_selectDisplayMemory(uint_fast16_t displayMemory);
533*5fd0122aSMatthias Ringwald 
534*5fd0122aSMatthias Ringwald //*****************************************************************************
535*5fd0122aSMatthias Ringwald //
536*5fd0122aSMatthias Ringwald //! \brief Sets the blinking control register.
537*5fd0122aSMatthias Ringwald //!
538*5fd0122aSMatthias Ringwald //! This function sets the blink control related parameter, including blink
539*5fd0122aSMatthias Ringwald //! clock frequency prescalar and blink mode.
540*5fd0122aSMatthias Ringwald //!
541*5fd0122aSMatthias Ringwald //! \param clockPrescalar is the clock pre-scalar for blinking frequency.
542*5fd0122aSMatthias Ringwald //!        Valid values are:
543*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_512 [Default]
544*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_1024
545*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_2048
546*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_4096
547*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_8162
548*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_16384
549*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_32768
550*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_65536
551*5fd0122aSMatthias Ringwald //! \param clockDivider is the clock divider for blinking frequency.
552*5fd0122aSMatthias Ringwald //!        Valid values are:
553*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_1 [Default]
554*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_2
555*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_3
556*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_4
557*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_5
558*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_6
559*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_7
560*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_FREQ_CLOCK_DIVIDER_8
561*5fd0122aSMatthias Ringwald //! \param mode is the select for blinking mode.
562*5fd0122aSMatthias Ringwald //!        Valid values are:
563*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_MODE_DISABLED [Default]
564*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_MODE_INDIVIDUAL_SEGMENTS
565*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_MODE_ALL_SEGMENTS
566*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINK_MODE_SWITCHING_BETWEEN_DISPLAY_CONTENTS
567*5fd0122aSMatthias Ringwald //!
568*5fd0122aSMatthias Ringwald //! \return None
569*5fd0122aSMatthias Ringwald //
570*5fd0122aSMatthias Ringwald //*****************************************************************************
571*5fd0122aSMatthias Ringwald extern void LCD_F_setBlinkingControl(uint_fast16_t clockPrescalar,
572*5fd0122aSMatthias Ringwald                                      uint_fast16_t divider, uint_fast16_t mode);
573*5fd0122aSMatthias Ringwald 
574*5fd0122aSMatthias Ringwald //*****************************************************************************
575*5fd0122aSMatthias Ringwald //
576*5fd0122aSMatthias Ringwald //! \brief Sets the animation control register.
577*5fd0122aSMatthias Ringwald //!
578*5fd0122aSMatthias Ringwald //! This function sets the animation control related parameter, including
579*5fd0122aSMatthias Ringwald //! animation clock frequency prescalar, divider, and frame settings
580*5fd0122aSMatthias Ringwald //!
581*5fd0122aSMatthias Ringwald //! \param clockPrescalar is the clock pre-scalar for animation frequency.
582*5fd0122aSMatthias Ringwald //!        Valid values are:
583*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_512 [Default]
584*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_1024
585*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_2048
586*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_4096
587*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_8162
588*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_16384
589*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_32768
590*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_65536
591*5fd0122aSMatthias Ringwald //! \param clockDivider is the clock divider for animation frequency.
592*5fd0122aSMatthias Ringwald //!        Valid values are:
593*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_1 [Default]
594*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_2
595*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_3
596*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_4
597*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_5
598*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_6
599*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_7
600*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_8
601*5fd0122aSMatthias Ringwald //! \param frames is number of animations frames to be repeated
602*5fd0122aSMatthias Ringwald //!        Valid values are:
603*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T7
604*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T6
605*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T5
606*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T4
607*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T3
608*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T2
609*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0_TO_T1
610*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_FRAMES_T0
611*5fd0122aSMatthias Ringwald //!
612*5fd0122aSMatthias Ringwald //! \return None
613*5fd0122aSMatthias Ringwald //
614*5fd0122aSMatthias Ringwald //*****************************************************************************
615*5fd0122aSMatthias Ringwald extern void LCD_F_setAnimationControl(uint_fast16_t clockPrescalar,
616*5fd0122aSMatthias Ringwald                                       uint_fast16_t divider,
617*5fd0122aSMatthias Ringwald                                       uint_fast16_t frames);
618*5fd0122aSMatthias Ringwald 
619*5fd0122aSMatthias Ringwald //*****************************************************************************
620*5fd0122aSMatthias Ringwald //
621*5fd0122aSMatthias Ringwald //! \brief Enables animation on the LCD_F controller
622*5fd0122aSMatthias Ringwald //!
623*5fd0122aSMatthias Ringwald //! This function turns on animation for the LCD_F controller.
624*5fd0122aSMatthias Ringwald //!
625*5fd0122aSMatthias Ringwald //! \return None
626*5fd0122aSMatthias Ringwald //
627*5fd0122aSMatthias Ringwald //*****************************************************************************
628*5fd0122aSMatthias Ringwald extern void LCD_F_enableAnimation(void);
629*5fd0122aSMatthias Ringwald 
630*5fd0122aSMatthias Ringwald 
631*5fd0122aSMatthias Ringwald //*****************************************************************************
632*5fd0122aSMatthias Ringwald //
633*5fd0122aSMatthias Ringwald //! \brief Enables animation on the LCD_F controller
634*5fd0122aSMatthias Ringwald //!
635*5fd0122aSMatthias Ringwald //! This function turns on animation for the LCD_F controller.
636*5fd0122aSMatthias Ringwald //!
637*5fd0122aSMatthias Ringwald //! \return None
638*5fd0122aSMatthias Ringwald //
639*5fd0122aSMatthias Ringwald //*****************************************************************************
640*5fd0122aSMatthias Ringwald extern void LCD_F_disableAnimation(void);
641*5fd0122aSMatthias Ringwald 
642*5fd0122aSMatthias Ringwald //*****************************************************************************
643*5fd0122aSMatthias Ringwald //
644*5fd0122aSMatthias Ringwald //! \brief Clears all LCD_F animation memory registers.
645*5fd0122aSMatthias Ringwald //!
646*5fd0122aSMatthias Ringwald //! This function clears all LCD_F animation memory registers.
647*5fd0122aSMatthias Ringwald //!
648*5fd0122aSMatthias Ringwald //! \return None
649*5fd0122aSMatthias Ringwald //
650*5fd0122aSMatthias Ringwald //*****************************************************************************
651*5fd0122aSMatthias Ringwald extern void LCD_F_clearAllAnimationMemory(void);
652*5fd0122aSMatthias Ringwald 
653*5fd0122aSMatthias Ringwald //*****************************************************************************
654*5fd0122aSMatthias Ringwald //
655*5fd0122aSMatthias Ringwald //! \brief Sets the LCD_F pins as LCD function pin.
656*5fd0122aSMatthias Ringwald //!
657*5fd0122aSMatthias Ringwald //! This function sets the LCD_F pins as LCD function pin.
658*5fd0122aSMatthias Ringwald //!
659*5fd0122aSMatthias Ringwald //! \param pin is the select pin set as LCD function.
660*5fd0122aSMatthias Ringwald //!        Valid values are:
661*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
662*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
663*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
664*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
665*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
666*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
667*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
668*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
669*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
670*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
671*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
672*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
673*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
674*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
675*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
676*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
677*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
678*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
679*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
680*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
681*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
682*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
683*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
684*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
685*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
686*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
687*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
688*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
689*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
690*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
691*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
692*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
693*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
694*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
695*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
696*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
697*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
698*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
699*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
700*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
701*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
702*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
703*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
704*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
705*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
706*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
707*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
708*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
709*5fd0122aSMatthias Ringwald //!
710*5fd0122aSMatthias Ringwald //! \return None
711*5fd0122aSMatthias Ringwald //
712*5fd0122aSMatthias Ringwald //*****************************************************************************
713*5fd0122aSMatthias Ringwald extern void LCD_F_setPinAsLCDFunction(uint_fast8_t pin);
714*5fd0122aSMatthias Ringwald 
715*5fd0122aSMatthias Ringwald //*****************************************************************************
716*5fd0122aSMatthias Ringwald //
717*5fd0122aSMatthias Ringwald //! \brief Sets the LCD_F pins as port function pin.
718*5fd0122aSMatthias Ringwald //!
719*5fd0122aSMatthias Ringwald //! \param baseAddress is the base address of the LCD_F module.
720*5fd0122aSMatthias Ringwald //! \param pin is the select pin set as Port function.
721*5fd0122aSMatthias Ringwald //!        Valid values are:
722*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
723*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
724*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
725*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
726*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
727*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
728*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
729*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
730*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
731*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
732*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
733*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
734*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
735*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
736*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
737*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
738*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
739*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
740*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
741*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
742*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
743*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
744*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
745*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
746*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
747*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
748*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
749*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
750*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
751*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
752*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
753*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
754*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
755*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
756*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
757*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
758*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
759*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
760*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
761*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
762*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
763*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
764*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
765*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
766*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
767*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
768*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
769*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
770*5fd0122aSMatthias Ringwald //!
771*5fd0122aSMatthias Ringwald //! \return None
772*5fd0122aSMatthias Ringwald //
773*5fd0122aSMatthias Ringwald //*****************************************************************************
774*5fd0122aSMatthias Ringwald extern void LCD_F_setPinAsPortFunction(uint_fast8_t pin);
775*5fd0122aSMatthias Ringwald 
776*5fd0122aSMatthias Ringwald //*****************************************************************************
777*5fd0122aSMatthias Ringwald //
778*5fd0122aSMatthias Ringwald //! \brief Sets the LCD_F pins as LCD function pin.
779*5fd0122aSMatthias Ringwald //!
780*5fd0122aSMatthias Ringwald //! This function sets the LCD_F pins as LCD function pin. Instead of passing
781*5fd0122aSMatthias Ringwald //! the all the possible pins, it just requires the start pin and the end pin.
782*5fd0122aSMatthias Ringwald //!
783*5fd0122aSMatthias Ringwald //! \param startPin is the starting pin to be configured as LCD function pin.
784*5fd0122aSMatthias Ringwald //!        Valid values are:
785*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
786*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
787*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
788*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
789*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
790*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
791*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
792*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
793*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
794*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
795*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
796*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
797*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
798*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
799*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
800*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
801*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
802*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
803*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
804*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
805*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
806*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
807*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
808*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
809*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
810*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
811*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
812*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
813*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
814*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
815*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
816*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
817*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
818*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
819*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
820*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
821*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
822*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
823*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
824*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
825*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
826*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
827*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
828*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
829*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
830*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
831*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
832*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
833*5fd0122aSMatthias Ringwald //! \param endPin is the ending pin to be configured as LCD function pin.
834*5fd0122aSMatthias Ringwald //!        Valid values are:
835*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
836*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
837*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
838*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
839*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
840*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
841*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
842*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
843*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
844*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
845*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
846*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
847*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
848*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
849*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
850*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
851*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
852*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
853*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
854*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
855*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
856*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
857*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
858*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
859*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
860*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
861*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
862*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
863*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
864*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
865*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
866*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
867*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
868*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
869*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
870*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
871*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
872*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
873*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
874*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
875*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
876*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
877*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
878*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
879*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
880*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
881*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
882*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
883*5fd0122aSMatthias Ringwald //!
884*5fd0122aSMatthias Ringwald //! \return None
885*5fd0122aSMatthias Ringwald //
886*5fd0122aSMatthias Ringwald //*****************************************************************************
887*5fd0122aSMatthias Ringwald extern void LCD_F_setPinsAsLCDFunction(uint_fast8_t startPin, uint8_t endPin);
888*5fd0122aSMatthias Ringwald 
889*5fd0122aSMatthias Ringwald //*****************************************************************************
890*5fd0122aSMatthias Ringwald //
891*5fd0122aSMatthias Ringwald //! \brief Sets the LCD_F pin as a common line.
892*5fd0122aSMatthias Ringwald //!
893*5fd0122aSMatthias Ringwald //! This function sets the LCD_F pin as a common line and assigns the
894*5fd0122aSMatthias Ringwald //! corresponding memory pin to a specific COM line.
895*5fd0122aSMatthias Ringwald //!
896*5fd0122aSMatthias Ringwald //! \param pin is the selected pin to be configured as common line.
897*5fd0122aSMatthias Ringwald //!        Valid values are:
898*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
899*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
900*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
901*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
902*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
903*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
904*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
905*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
906*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
907*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
908*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
909*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
910*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
911*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
912*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
913*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
914*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
915*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
916*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
917*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
918*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
919*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
920*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
921*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
922*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
923*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
924*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
925*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
926*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
927*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
928*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
929*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
930*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
931*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
932*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
933*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
934*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
935*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
936*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
937*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
938*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
939*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
940*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
941*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
942*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
943*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
944*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
945*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
946*5fd0122aSMatthias Ringwald //! \param com is the selected COM number for the common line.
947*5fd0122aSMatthias Ringwald //!        Valid values are:
948*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM0
949*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM1
950*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM2
951*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM3
952*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM4 - only for 5-Mux/6-Mux/7-Mux/8-Mux
953*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM5 - only for 5-Mux/6-Mux/7-Mux/8-Mux
954*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM6 - only for 5-Mux/6-Mux/7-Mux/8-Mux
955*5fd0122aSMatthias Ringwald //!        - \b LCD_F_MEMORY_COM7 - only for 5-Mux/6-Mux/7-Mux/8-Mux
956*5fd0122aSMatthias Ringwald //!
957*5fd0122aSMatthias Ringwald //! \return None
958*5fd0122aSMatthias Ringwald //
959*5fd0122aSMatthias Ringwald //*****************************************************************************
960*5fd0122aSMatthias Ringwald extern void LCD_F_setPinAsCOM(uint8_t pin, uint_fast8_t com);
961*5fd0122aSMatthias Ringwald 
962*5fd0122aSMatthias Ringwald //*****************************************************************************
963*5fd0122aSMatthias Ringwald //
964*5fd0122aSMatthias Ringwald //! \brief Sets the LCD_F pin as a segment line.
965*5fd0122aSMatthias Ringwald //!
966*5fd0122aSMatthias Ringwald //! This function sets the LCD_F pin as segment line.
967*5fd0122aSMatthias Ringwald //!
968*5fd0122aSMatthias Ringwald //! \param pin is the selected pin to be configed as segment line.
969*5fd0122aSMatthias Ringwald //!        Valid values are:
970*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_0
971*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_1
972*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_2
973*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_3
974*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_4
975*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_5
976*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_6
977*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_7
978*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_8
979*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_9
980*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_10
981*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_11
982*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_12
983*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_13
984*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_14
985*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_15
986*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_16
987*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_17
988*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_18
989*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_19
990*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_20
991*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_21
992*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_22
993*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_23
994*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_24
995*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_25
996*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_26
997*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_27
998*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_28
999*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_29
1000*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_30
1001*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_31
1002*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_32
1003*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_33
1004*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_34
1005*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_35
1006*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_36
1007*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_37
1008*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_38
1009*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_39
1010*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_40
1011*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_41
1012*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_42
1013*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_43
1014*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_44
1015*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_45
1016*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_46
1017*5fd0122aSMatthias Ringwald //!        - \b LCD_F_SEGMENT_LINE_47
1018*5fd0122aSMatthias Ringwald //!
1019*5fd0122aSMatthias Ringwald //! \return None
1020*5fd0122aSMatthias Ringwald //
1021*5fd0122aSMatthias Ringwald //*****************************************************************************
1022*5fd0122aSMatthias Ringwald extern void LCD_F_setPinAsSEG(uint_fast8_t pin);
1023*5fd0122aSMatthias Ringwald 
1024*5fd0122aSMatthias Ringwald //*****************************************************************************
1025*5fd0122aSMatthias Ringwald //
1026*5fd0122aSMatthias Ringwald //! \brief Selects the bias level.
1027*5fd0122aSMatthias Ringwald //!
1028*5fd0122aSMatthias Ringwald //! \param bias is the select for bias level.
1029*5fd0122aSMatthias Ringwald //!        Valid values are:
1030*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BIAS_1_3 [Default] - 1/3 bias
1031*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BIAS_1_4 - 1/4 bias
1032*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BIAS_1_2 - 1/2 bias
1033*5fd0122aSMatthias Ringwald //!
1034*5fd0122aSMatthias Ringwald //! \note Quarter (1/4) BIAS mode is only available in 5-mux to 8-mux. In
1035*5fd0122aSMatthias Ringwald //!     2-mux to 4-mux modes, this value will result in a third BIAS (1/3)
1036*5fd0122aSMatthias Ringwald //!
1037*5fd0122aSMatthias Ringwald //! \return None
1038*5fd0122aSMatthias Ringwald //
1039*5fd0122aSMatthias Ringwald //*****************************************************************************
1040*5fd0122aSMatthias Ringwald extern void LCD_F_selectBias(uint_fast16_t bias);
1041*5fd0122aSMatthias Ringwald 
1042*5fd0122aSMatthias Ringwald //*****************************************************************************
1043*5fd0122aSMatthias Ringwald //
1044*5fd0122aSMatthias Ringwald //! \brief Sets the voltage source for V2/V3/V4 and V5.
1045*5fd0122aSMatthias Ringwald //!
1046*5fd0122aSMatthias Ringwald //! \param v2v3v4Source is the V2/V3/V4 source select.
1047*5fd0122aSMatthias Ringwald //!        Valid values are:
1048*5fd0122aSMatthias Ringwald //!        - \b LCD_F_V2V3V4_GENERATED_INTERNALLY_NOT_SWITCHED_TO_PINS
1049*5fd0122aSMatthias Ringwald //!           [Default]
1050*5fd0122aSMatthias Ringwald //!        - \b LCD_F_V2V3V4_GENERATED_INTERNALLY_SWITCHED_TO_PINS
1051*5fd0122aSMatthias Ringwald //!        - \b LCD_F_V2V3V4_SOURCED_EXTERNALLY
1052*5fd0122aSMatthias Ringwald //! \param v5Source is the V5 source select.
1053*5fd0122aSMatthias Ringwald //!        Valid values are:
1054*5fd0122aSMatthias Ringwald //!        - \b LCD_F_V5_VSS [Default]
1055*5fd0122aSMatthias Ringwald //!        - \b LCD_F_V5_SOURCED_FROM_R03
1056*5fd0122aSMatthias Ringwald //!
1057*5fd0122aSMatthias Ringwald //! \return None
1058*5fd0122aSMatthias Ringwald //
1059*5fd0122aSMatthias Ringwald //*****************************************************************************
1060*5fd0122aSMatthias Ringwald extern void LCD_F_setVLCDSource(uint_fast16_t v2v3v4Source,
1061*5fd0122aSMatthias Ringwald                                      uint_fast16_t v5Source);
1062*5fd0122aSMatthias Ringwald 
1063*5fd0122aSMatthias Ringwald //*****************************************************************************
1064*5fd0122aSMatthias Ringwald //
1065*5fd0122aSMatthias Ringwald //! \brief Clears the LCD_F selected interrupt flags.
1066*5fd0122aSMatthias Ringwald //!
1067*5fd0122aSMatthias Ringwald //! This function clears the specified interrupt flags.
1068*5fd0122aSMatthias Ringwald //!
1069*5fd0122aSMatthias Ringwald //! \param mask is the masked interrupt flag to be cleared.
1070*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
1071*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
1072*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
1073*5fd0122aSMatthias Ringwald //!        - \b LCD_F_FRAME_INTERRUPT
1074*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_LOOP_INTERRUPT
1075*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_STEP_INTERRUPT
1076*5fd0122aSMatthias Ringwald //!
1077*5fd0122aSMatthias Ringwald //! \return None
1078*5fd0122aSMatthias Ringwald //
1079*5fd0122aSMatthias Ringwald //*****************************************************************************
1080*5fd0122aSMatthias Ringwald extern void LCD_F_clearInterrupt(uint32_t mask);
1081*5fd0122aSMatthias Ringwald 
1082*5fd0122aSMatthias Ringwald //*****************************************************************************
1083*5fd0122aSMatthias Ringwald //
1084*5fd0122aSMatthias Ringwald //! \brief Returns the status of the selected interrupt flags.
1085*5fd0122aSMatthias Ringwald //!
1086*5fd0122aSMatthias Ringwald //! This function returns the status of the selected interrupt flags.
1087*5fd0122aSMatthias Ringwald //!
1088*5fd0122aSMatthias Ringwald //! \return The current interrupt flag status. Can be a logical OR of:
1089*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
1090*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
1091*5fd0122aSMatthias Ringwald //!        - \b LCD_F_FRAME_INTERRUPT
1092*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_LOOP_INTERRUPT
1093*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_STEP_INTERRUPT
1094*5fd0122aSMatthias Ringwald //
1095*5fd0122aSMatthias Ringwald //*****************************************************************************
1096*5fd0122aSMatthias Ringwald extern uint32_t LCD_F_getInterruptStatus(void);
1097*5fd0122aSMatthias Ringwald 
1098*5fd0122aSMatthias Ringwald //*****************************************************************************
1099*5fd0122aSMatthias Ringwald //
1100*5fd0122aSMatthias Ringwald //! \brief Returns the status of the selected interrupt flags masked with the
1101*5fd0122aSMatthias Ringwald //!  currently enabled interrupts.
1102*5fd0122aSMatthias Ringwald //!
1103*5fd0122aSMatthias Ringwald //! \return The current interrupt flag status. Can be a logical OR of:
1104*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
1105*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
1106*5fd0122aSMatthias Ringwald //!        - \b LCD_F_FRAME_INTERRUPT
1107*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_LOOP_INTERRUPT
1108*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_STEP_INTERRUPT
1109*5fd0122aSMatthias Ringwald //
1110*5fd0122aSMatthias Ringwald //*****************************************************************************
1111*5fd0122aSMatthias Ringwald extern uint32_t LCD_F_getEnabledInterruptStatus(void);
1112*5fd0122aSMatthias Ringwald 
1113*5fd0122aSMatthias Ringwald //*****************************************************************************
1114*5fd0122aSMatthias Ringwald //
1115*5fd0122aSMatthias Ringwald //! \brief Enables the LCD_F selected interrupts
1116*5fd0122aSMatthias Ringwald //!
1117*5fd0122aSMatthias Ringwald //! This function enables the specified interrupts
1118*5fd0122aSMatthias Ringwald //!
1119*5fd0122aSMatthias Ringwald //! \param mask is the variable containing interrupt flags to be enabled.
1120*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
1121*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
1122*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
1123*5fd0122aSMatthias Ringwald //!        - \b LCD_F_FRAME_INTERRUPT
1124*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_LOOP_INTERRUPT
1125*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_STEP_INTERRUPT
1126*5fd0122aSMatthias Ringwald //!
1127*5fd0122aSMatthias Ringwald //! \return None
1128*5fd0122aSMatthias Ringwald //
1129*5fd0122aSMatthias Ringwald //*****************************************************************************
1130*5fd0122aSMatthias Ringwald extern void LCD_F_enableInterrupt(uint32_t mask);
1131*5fd0122aSMatthias Ringwald 
1132*5fd0122aSMatthias Ringwald //*****************************************************************************
1133*5fd0122aSMatthias Ringwald //
1134*5fd0122aSMatthias Ringwald //! \brief Disables the LCD_F selected interrupts.
1135*5fd0122aSMatthias Ringwald //!
1136*5fd0122aSMatthias Ringwald //! This function disables the specified interrupts.
1137*5fd0122aSMatthias Ringwald //!
1138*5fd0122aSMatthias Ringwald //! \param mask is the variable containing interrupt flags to be disabled
1139*5fd0122aSMatthias Ringwald //!        Mask value is the logical OR of any of the following:
1140*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT
1141*5fd0122aSMatthias Ringwald //!        - \b LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT
1142*5fd0122aSMatthias Ringwald //!        - \b LCD_F_FRAME_INTERRUPT
1143*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_LOOP_INTERRUPT
1144*5fd0122aSMatthias Ringwald //!        - \b LCD_F_ANIMATION_STEP_INTERRUPT
1145*5fd0122aSMatthias Ringwald //!
1146*5fd0122aSMatthias Ringwald //! \return None
1147*5fd0122aSMatthias Ringwald //
1148*5fd0122aSMatthias Ringwald //*****************************************************************************
1149*5fd0122aSMatthias Ringwald extern void LCD_F_disableInterrupt(uint32_t mask);
1150*5fd0122aSMatthias Ringwald 
1151*5fd0122aSMatthias Ringwald //*****************************************************************************
1152*5fd0122aSMatthias Ringwald //
1153*5fd0122aSMatthias Ringwald //! Registers an interrupt handler for LCD_F interrupt.
1154*5fd0122aSMatthias Ringwald //!
1155*5fd0122aSMatthias Ringwald //! \param intHandler is a pointer to the function to be called when the
1156*5fd0122aSMatthias Ringwald //! LCD_F interrupt occurs.
1157*5fd0122aSMatthias Ringwald //!
1158*5fd0122aSMatthias Ringwald //! This function registers the handler to be called when a LCD_F
1159*5fd0122aSMatthias Ringwald //! interrupt occurs. This function enables the global interrupt in the
1160*5fd0122aSMatthias Ringwald //! interrupt controller; specific LCD_F interrupts must be enabled
1161*5fd0122aSMatthias Ringwald //! via LCD_F_enableInterrupt().  It is the interrupt handler's responsibility
1162*5fd0122aSMatthias Ringwald //! to clear the interrupt source through LCD_F_clearInterruptFlag().
1163*5fd0122aSMatthias Ringwald //!
1164*5fd0122aSMatthias Ringwald //! \return None.
1165*5fd0122aSMatthias Ringwald //
1166*5fd0122aSMatthias Ringwald //*****************************************************************************
1167*5fd0122aSMatthias Ringwald extern void LCD_F_registerInterrupt(void (*intHandler)(void));
1168*5fd0122aSMatthias Ringwald 
1169*5fd0122aSMatthias Ringwald //*****************************************************************************
1170*5fd0122aSMatthias Ringwald //
1171*5fd0122aSMatthias Ringwald //! Unregisters the interrupt handler for the LCD_F interrupt
1172*5fd0122aSMatthias Ringwald //!
1173*5fd0122aSMatthias Ringwald //! This function unregisters the handler to be called when LCD_F
1174*5fd0122aSMatthias Ringwald //! interrupt occurs.  This function also masks off the interrupt in the
1175*5fd0122aSMatthias Ringwald //! interrupt controller so that the interrupt handler no longer is called.
1176*5fd0122aSMatthias Ringwald //!
1177*5fd0122aSMatthias Ringwald //! \sa Interrupt_registerInterrupt() for important information about
1178*5fd0122aSMatthias Ringwald //! registering interrupt handlers.
1179*5fd0122aSMatthias Ringwald //!
1180*5fd0122aSMatthias Ringwald //! \return None.
1181*5fd0122aSMatthias Ringwald //
1182*5fd0122aSMatthias Ringwald //*****************************************************************************
1183*5fd0122aSMatthias Ringwald extern void LCD_F_unregisterInterrupt(void);
1184*5fd0122aSMatthias Ringwald 
1185*5fd0122aSMatthias Ringwald //*****************************************************************************
1186*5fd0122aSMatthias Ringwald //
1187*5fd0122aSMatthias Ringwald // Mark the end of the C bindings section for C++ compilers.
1188*5fd0122aSMatthias Ringwald //
1189*5fd0122aSMatthias Ringwald //*****************************************************************************
1190*5fd0122aSMatthias Ringwald #ifdef __cplusplus
1191*5fd0122aSMatthias Ringwald }
1192*5fd0122aSMatthias Ringwald #endif
1193*5fd0122aSMatthias Ringwald 
1194*5fd0122aSMatthias Ringwald //*****************************************************************************
1195*5fd0122aSMatthias Ringwald //
1196*5fd0122aSMatthias Ringwald // Close the Doxygen group.
1197*5fd0122aSMatthias Ringwald //! @}
1198*5fd0122aSMatthias Ringwald //
1199*5fd0122aSMatthias Ringwald //*****************************************************************************
1200*5fd0122aSMatthias Ringwald 
1201*5fd0122aSMatthias Ringwald #endif /* __MCU_HAS_LCD_F__ */
1202*5fd0122aSMatthias Ringwald 
1203*5fd0122aSMatthias Ringwald #endif /* LCD_F_H_ */
1204