1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/***********************************************************************************************************************
* Copyright (C) All rights reserved.
***********************************************************************************************************************/
/***********************************************************************************************************************
* @file lcdb.c
* @brief This file implements device driver for LCD module.
* @version 1.0.0
* @date 2020/10/12
***********************************************************************************************************************/
/***********************************************************************************************************************
Includes
***********************************************************************************************************************/
#include "lcdb.h"
/* Start user code for include. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
/***********************************************************************************************************************
Pragma directive
***********************************************************************************************************************/
/* Start user code for pragma. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
/***********************************************************************************************************************
Global variables and functions
***********************************************************************************************************************/
/* Start user code for global. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
/***********************************************************************************************************************
* Function Name: LCDB_Init
* @brief This function initializes the LCDB module.
* @param pinMsk -
* @return None
***********************************************************************************************************************/
void LCDB_Init(LCDB_Typedef* pLcdb)
{
CGC_PER3PeriphClockCmd(CGC_PER3Periph_LCDB, ENABLE); /*enable lcdb clock*/
if(LCDB_MODE_TYPE_8080 == pLcdb->mode)
{
LCDB->LBCTL &= ~LCDB_LBCTL_IMD_Msk;
}
else
{
LCDB->LBCTL |= LCDB_LBCTL_IMD_Msk;
if(LCDB_MODE_6800_CNTL_ENABLE_HIGH == pLcdb->mode_6800_E_level)
{
LCDB->LBCTL &= ~LCDB_LBCTL_EL_Msk;
}
else
{
LCDB->LBCTL |= LCDB_LBCTL_EL_Msk;
}
}
LCDB->LBCTL &= ~LCDB_LBCTL_LBC_Msk;//lcdb clock divider
LCDB->LBCTL |= (pLcdb->clock_div)<<LCDB_LBCTL_LBC_Pos;
LCDB->LBCYC = pLcdb->cycle;
LCDB->LBWST = pLcdb->wait_cycle;
INTC_DisableIRQ(LCDB_IRQn); /* disable LCDB interrupt */
INTC_ClearPendingIRQ(LCDB_IRQn); /* clear LCDB interrupt flag */
}
/***********************************************************************************************************************
* Function Name: LCDB_Start
* @brief This function clears LCDB interrupt flag and enables interrupt.
* @param None
* @return None
***********************************************************************************************************************/
void LCDB_Start(void)
{
INTC_ClearPendingIRQ(LCDB_IRQn); /* clear LCDB interrupt flag */
INTC_EnableIRQ(LCDB_IRQn);/* enable LCDB interrupt */
}
/***********************************************************************************************************************
* Function Name: LCDB_Stop
* @brief This function disables LCDB interrupt and clears interrupt flag.
* @param None
* @return None
***********************************************************************************************************************/
void LCDB_Stop(void)
{
INTC_DisableIRQ(LCDB_IRQn); /* disable LCDB interrupt */
INTC_ClearPendingIRQ(LCDB_IRQn); /* clear LCDB interrupt flag */
}
/* Start user code for adding. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */