37 #include <ti/devices/msp432p4xx/inc/msp.h>
41 #ifdef __MCU_HAS_LCD_F__
143 #define LCD_F_CLOCKSOURCE_ACLK (LCD_F_CTL_SSEL_0)
144 #define LCD_F_CLOCKSOURCE_VLOCLK (LCD_F_CTL_SSEL_1)
145 #define LCD_F_CLOCKSOURCE_REFOCLK (LCD_F_CTL_SSEL_2)
146 #define LCD_F_CLOCKSOURCE_LFXT (LCD_F_CTL_SSEL_3)
155 #define LCD_F_CLOCKDIVIDER_1 0x0
156 #define LCD_F_CLOCKDIVIDER_2 0x800
157 #define LCD_F_CLOCKDIVIDER_3 0x1000
158 #define LCD_F_CLOCKDIVIDER_4 0x1800
159 #define LCD_F_CLOCKDIVIDER_5 0x2000
160 #define LCD_F_CLOCKDIVIDER_6 0x2800
161 #define LCD_F_CLOCKDIVIDER_7 0x3000
162 #define LCD_F_CLOCKDIVIDER_8 0x3800
163 #define LCD_F_CLOCKDIVIDER_9 0x4000
164 #define LCD_F_CLOCKDIVIDER_10 0x4800
165 #define LCD_F_CLOCKDIVIDER_11 0x5000
166 #define LCD_F_CLOCKDIVIDER_12 0x5800
167 #define LCD_F_CLOCKDIVIDER_13 0x6000
168 #define LCD_F_CLOCKDIVIDER_14 0x6800
169 #define LCD_F_CLOCKDIVIDER_15 0x7000
170 #define LCD_F_CLOCKDIVIDER_16 0x7800
171 #define LCD_F_CLOCKDIVIDER_17 0x8000
172 #define LCD_F_CLOCKDIVIDER_18 0x8800
173 #define LCD_F_CLOCKDIVIDER_19 0x9000
174 #define LCD_F_CLOCKDIVIDER_20 0x9800
175 #define LCD_F_CLOCKDIVIDER_21 0xa000
176 #define LCD_F_CLOCKDIVIDER_22 0xa800
177 #define LCD_F_CLOCKDIVIDER_23 0xb000
178 #define LCD_F_CLOCKDIVIDER_24 0xb800
179 #define LCD_F_CLOCKDIVIDER_25 0xc000
180 #define LCD_F_CLOCKDIVIDER_26 0xc800
181 #define LCD_F_CLOCKDIVIDER_27 0xd000
182 #define LCD_F_CLOCKDIVIDER_28 0xd800
183 #define LCD_F_CLOCKDIVIDER_29 0xe000
184 #define LCD_F_CLOCKDIVIDER_30 0xe800
185 #define LCD_F_CLOCKDIVIDER_31 0xf000
186 #define LCD_F_CLOCKDIVIDER_32 0xf800
194 #define LCD_F_CLOCKPRESCALER_1 (LCD_F_CTL_PRE_0)
195 #define LCD_F_CLOCKPRESCALER_2 (LCD_F_CTL_PRE_1)
196 #define LCD_F_CLOCKPRESCALER_4 (LCD_F_CTL_PRE_2)
197 #define LCD_F_CLOCKPRESCALER_8 (LCD_F_CTL_PRE_3)
198 #define LCD_F_CLOCKPRESCALER_16 (LCD_F_CTL_PRE_4)
199 #define LCD_F_CLOCKPRESCALER_32 (LCD_F_CTL_PRE_5)
207 #define LCD_F_STATIC (LCD_F_CTL_MX_0)
208 #define LCD_F_2_MUX (LCD_F_CTL_MX_1)
209 #define LCD_F_3_MUX (LCD_F_CTL_MX_2)
210 #define LCD_F_4_MUX (LCD_F_CTL_MX_3)
211 #define LCD_F_5_MUX (LCD_F_CTL_MX_4)
212 #define LCD_F_6_MUX (LCD_F_CTL_MX_5)
213 #define LCD_F_7_MUX (LCD_F_CTL_MX_6)
214 #define LCD_F_8_MUX (LCD_F_CTL_MX_7)
222 #define LCD_F_V2V3V4_GENERATED_INTERNALLY_NOT_SWITCHED_TO_PINS (0x0)
223 #define LCD_F_V2V3V4_GENERATED_INTERNALLY_SWITCHED_TO_PINS (LCD_F_VCTL_REXT)
224 #define LCD_F_V2V3V4_SOURCED_EXTERNALLY (LCD_F_VCTL_EXTBIAS)
232 #define LCD_F_V5_VSS (0x0)
233 #define LCD_F_V5_SOURCED_FROM_R03 (LCD_F_VCTL_R03EXT)
241 #define LCD_F_STANDARD_WAVEFORMS (0x0)
242 #define LCD_F_LOW_POWER_WAVEFORMS (LCD_F_CTL_LP)
250 #define LCD_F_SEGMENTS_DISABLED (0x0)
251 #define LCD_F_SEGMENTS_ENABLED (LCD_F_CTL_SON)
261 #define LCD_F_BLINKING_SEGMENTS_ON_INTERRUPT (LCD_F_IE_BLKONIE)
262 #define LCD_F_BLINKING_SEGMENTS_OFF_INTERRUPT (LCD_F_IE_BLKOFFIE)
263 #define LCD_F_FRAME_INTERRUPT (LCD_F_IE_FRMIE)
264 #define LCD_F_ANIMATION_LOOP_INTERRUPT (LCD_F_IE_ANMLOOPIE)
265 #define LCD_F_ANIMATION_STEP_INTERRUPT (LCD_F_IE_ANMSTPIE)
273 #define LCD_F_DISPLAYSOURCE_MEMORY (0x0)
274 #define LCD_F_DISPLAYSOURCE_BLINKINGMEMORY (0x1)
282 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_512 LCD_F_BMCTL_BLKPRE_0
283 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_1024 LCD_F_BMCTL_BLKPRE_1
284 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_2048 LCD_F_BMCTL_BLKPRE_2
285 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_4096 LCD_F_BMCTL_BLKPRE_3
286 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_8162 LCD_F_BMCTL_BLKPRE_4
287 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_16384 LCD_F_BMCTL_BLKPRE_5
288 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_32768 LCD_F_BMCTL_BLKPRE_6
289 #define LCD_F_BLINK_FREQ_CLOCK_PRESCALAR_65536 LCD_F_BMCTL_BLKPRE_7
297 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_1 LCD_F_BMCTL_BLKDIV_0
298 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_2 LCD_F_BMCTL_BLKDIV_1
299 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_3 LCD_F_BMCTL_BLKDIV_2
300 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_4 LCD_F_BMCTL_BLKDIV_3
301 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_5 LCD_F_BMCTL_BLKDIV_4
302 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_6 LCD_F_BMCTL_BLKDIV_5
303 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_7 LCD_F_BMCTL_BLKDIV_6
304 #define LCD_F_BLINK_FREQ_CLOCK_DIVIDER_8 LCD_F_BMCTL_BLKDIV_7
312 #define LCD_F_BLINK_MODE_DISABLED (LCD_F_BMCTL_BLKMOD_0)
313 #define LCD_F_BLINK_MODE_INDIVIDUAL_SEGMENTS (LCD_F_BMCTL_BLKMOD_1)
314 #define LCD_F_BLINK_MODE_ALL_SEGMENTS (LCD_F_BMCTL_BLKMOD_2)
315 #define LCD_F_BLINK_MODE_SWITCHING_BETWEEN_DISPLAY_CONTENTS \
316 (LCD_F_BMCTL_BLKMOD_3)
324 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_512 LCD_F_ANMCTL_ANMPRE_0
325 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_1024 LCD_F_ANMCTL_ANMPRE_1
326 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_2048 LCD_F_ANMCTL_ANMPRE_2
327 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_4096 LCD_F_ANMCTL_ANMPRE_3
328 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_8162 LCD_F_ANMCTL_ANMPRE_4
329 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_16384 LCD_F_ANMCTL_ANMPRE_5
330 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_32768 LCD_F_ANMCTL_ANMPRE_6
331 #define LCD_F_ANIMATION_FREQ_CLOCK_PRESCALAR_65536 LCD_F_ANMCTL_ANMPRE_7
339 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_1 LCD_F_ANMCTL_ANMDIV_0
340 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_2 LCD_F_ANMCTL_ANMDIV_1
341 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_3 LCD_F_ANMCTL_ANMDIV_2
342 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_4 LCD_F_ANMCTL_ANMDIV_3
343 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_5 LCD_F_ANMCTL_ANMDIV_4
344 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_6 LCD_F_ANMCTL_ANMDIV_5
345 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_7 LCD_F_ANMCTL_ANMDIV_6
346 #define LCD_F_ANIMATION_FREQ_CLOCK_DIVIDER_8 LCD_F_ANMCTL_ANMDIV_7
354 #define LCD_F_ANIMATION_FRAMES_T0_TO_T7 LCD_F_ANMCTL_ANMSTP_7
355 #define LCD_F_ANIMATION_FRAMES_T0_TO_T6 LCD_F_ANMCTL_ANMSTP_6
356 #define LCD_F_ANIMATION_FRAMES_T0_TO_T5 LCD_F_ANMCTL_ANMSTP_5
357 #define LCD_F_ANIMATION_FRAMES_T0_TO_T4 LCD_F_ANMCTL_ANMSTP_4
358 #define LCD_F_ANIMATION_FRAMES_T0_TO_T3 LCD_F_ANMCTL_ANMSTP_3
359 #define LCD_F_ANIMATION_FRAMES_T0_TO_T2 LCD_F_ANMCTL_ANMSTP_2
360 #define LCD_F_ANIMATION_FRAMES_T0_TO_T1 LCD_F_ANMCTL_ANMSTP_1
361 #define LCD_F_ANIMATION_FRAMES_T0 LCD_F_ANMCTL_ANMSTP_0
372 #define LCD_F_SEGMENT_LINE_0 (0)
373 #define LCD_F_SEGMENT_LINE_1 (1)
374 #define LCD_F_SEGMENT_LINE_2 (2)
375 #define LCD_F_SEGMENT_LINE_3 (3)
376 #define LCD_F_SEGMENT_LINE_4 (4)
377 #define LCD_F_SEGMENT_LINE_5 (5)
378 #define LCD_F_SEGMENT_LINE_6 (6)
379 #define LCD_F_SEGMENT_LINE_7 (7)
380 #define LCD_F_SEGMENT_LINE_8 (8)
381 #define LCD_F_SEGMENT_LINE_9 (9)
382 #define LCD_F_SEGMENT_LINE_10 (10)
383 #define LCD_F_SEGMENT_LINE_11 (11)
384 #define LCD_F_SEGMENT_LINE_12 (12)
385 #define LCD_F_SEGMENT_LINE_13 (13)
386 #define LCD_F_SEGMENT_LINE_14 (14)
387 #define LCD_F_SEGMENT_LINE_15 (15)
388 #define LCD_F_SEGMENT_LINE_16 (16)
389 #define LCD_F_SEGMENT_LINE_17 (17)
390 #define LCD_F_SEGMENT_LINE_18 (18)
391 #define LCD_F_SEGMENT_LINE_19 (19)
392 #define LCD_F_SEGMENT_LINE_20 (20)
393 #define LCD_F_SEGMENT_LINE_21 (21)
394 #define LCD_F_SEGMENT_LINE_22 (22)
395 #define LCD_F_SEGMENT_LINE_23 (23)
396 #define LCD_F_SEGMENT_LINE_24 (24)
397 #define LCD_F_SEGMENT_LINE_25 (25)
398 #define LCD_F_SEGMENT_LINE_26 (26)
399 #define LCD_F_SEGMENT_LINE_27 (27)
400 #define LCD_F_SEGMENT_LINE_28 (28)
401 #define LCD_F_SEGMENT_LINE_29 (29)
402 #define LCD_F_SEGMENT_LINE_30 (30)
403 #define LCD_F_SEGMENT_LINE_31 (31)
404 #define LCD_F_SEGMENT_LINE_32 (32)
405 #define LCD_F_SEGMENT_LINE_33 (33)
406 #define LCD_F_SEGMENT_LINE_34 (34)
407 #define LCD_F_SEGMENT_LINE_35 (35)
408 #define LCD_F_SEGMENT_LINE_36 (36)
409 #define LCD_F_SEGMENT_LINE_37 (37)
410 #define LCD_F_SEGMENT_LINE_38 (38)
411 #define LCD_F_SEGMENT_LINE_39 (39)
412 #define LCD_F_SEGMENT_LINE_40 (40)
413 #define LCD_F_SEGMENT_LINE_41 (41)
414 #define LCD_F_SEGMENT_LINE_42 (42)
415 #define LCD_F_SEGMENT_LINE_43 (43)
416 #define LCD_F_SEGMENT_LINE_44 (44)
417 #define LCD_F_SEGMENT_LINE_45 (45)
418 #define LCD_F_SEGMENT_LINE_46 (46)
419 #define LCD_F_SEGMENT_LINE_47 (47)
428 #define LCD_F_MEMORY_COM0 (0x01)
429 #define LCD_F_MEMORY_COM1 (0x02)
430 #define LCD_F_MEMORY_COM2 (0x04)
431 #define LCD_F_MEMORY_COM3 (0x08)
432 #define LCD_F_MEMORY_COM4 (0x10)
433 #define LCD_F_MEMORY_COM5 (0x20)
434 #define LCD_F_MEMORY_COM6 (0x40)
435 #define LCD_F_MEMORY_COM7 (0x80)
443 #define LCD_F_BIAS_1_3 (0x0)
444 #define LCD_F_BIAS_1_2 (LCD_F_VCTL_LCD2B)
445 #define LCD_F_BIAS_1_4 (LCD_F_VCTL_LCD2B)
448 #define OFS_LCDM0W 0x120
449 #define OFS_LCDBM0W 0x160
572 uint_fast16_t divider, uint_fast16_t mode);
616 uint_fast16_t divider,
617 uint_fast16_t frames);
1061 uint_fast16_t v5Source);
void LCD_F_setAnimationControl(uint_fast16_t clockPrescalar, uint_fast16_t divider, uint_fast16_t frames)
Sets the animation control register.
Definition: lcd_f.c:89
void LCD_F_setPinsAsLCDFunction(uint_fast8_t startPin, uint8_t endPin)
Sets the LCD_F pins as LCD function pin.
Definition: lcd_f.c:146
void LCD_F_clearAllAnimationMemory(void)
Clears all LCD_F animation memory registers.
Definition: lcd_f.c:108
void LCD_F_setPinAsSEG(uint_fast8_t pin)
Sets the LCD_F pin as a segment line.
Definition: lcd_f.c:194
void LCD_F_clearInterrupt(uint32_t mask)
Clears the LCD_F selected interrupt flags.
Definition: lcd_f.c:225
void LCD_F_setPinAsPortFunction(uint_fast8_t pin)
Sets the LCD_F pins as port function pin.
Definition: lcd_f.c:130
void LCD_F_setBlinkingControl(uint_fast16_t clockPrescalar, uint_fast16_t divider, uint_fast16_t mode)
Sets the blinking control register.
Definition: lcd_f.c:80
void LCD_F_enableAnimation(void)
Enables animation on the LCD_F controller.
Definition: lcd_f.c:98
uint32_t clockPrescaler
Definition: lcd_f.h:113
void LCD_F_disableInterrupt(uint32_t mask)
Disables the LCD_F selected interrupts.
Definition: lcd_f.c:245
struct LCD_F_initParam LCD_F_Config
uint32_t muxRate
Definition: lcd_f.h:124
void LCD_F_unregisterInterrupt(void)
Definition: lcd_f.c:256
void LCD_F_setPinAsCOM(uint8_t pin, uint_fast8_t com)
Sets the LCD_F pin as a common line.
Definition: lcd_f.c:173
void LCD_F_initModule(LCD_F_Config *initParams)
Initializes the LCD_F Module.
Definition: lcd_f.c:41
void LCD_F_setPinAsLCDFunction(uint_fast8_t pin)
Sets the LCD_F pins as LCD function pin.
Definition: lcd_f.c:114
uint32_t clockDivider
Definition: lcd_f.h:104
void LCD_F_selectBias(uint_fast16_t bias)
Selects the bias level.
Definition: lcd_f.c:210
void LCD_F_disableAnimation(void)
Enables animation on the LCD_F controller.
Definition: lcd_f.c:103
void LCD_F_selectDisplayMemory(uint_fast16_t displayMemory)
Selects display memory.
Definition: lcd_f.c:75
uint32_t clockSource
Definition: lcd_f.h:69
uint32_t LCD_F_getEnabledInterruptStatus(void)
Returns the status of the selected interrupt flags masked with the currently enabled interrupts...
Definition: lcd_f.c:235
void LCD_F_enableInterrupt(uint32_t mask)
Enables the LCD_F selected interrupts.
Definition: lcd_f.c:240
void LCD_F_turnOff(void)
Turns the LCD_F off.
Definition: lcd_f.c:59
void LCD_F_clearAllBlinkingMemory(void)
Clears all LCD_F blinking memory registers.
Definition: lcd_f.c:70
void LCD_F_turnOn(void)
Turns on the LCD_F module.
Definition: lcd_f.c:54
void LCD_F_registerInterrupt(void(*intHandler)(void))
Definition: lcd_f.c:250
uint32_t LCD_F_getInterruptStatus(void)
Returns the status of the selected interrupt flags.
Definition: lcd_f.c:230
void LCD_F_setVLCDSource(uint_fast16_t v2v3v4Source, uint_fast16_t v5Source)
Sets the voltage source for V2/V3/V4 and V5.
Definition: lcd_f.c:216
uint32_t waveforms
Definition: lcd_f.h:129
void LCD_F_clearAllMemory(void)
Clears all LCD_F memory registers.
Definition: lcd_f.c:65
uint32_t segments
Definition: lcd_f.h:134