LPCOpen Platform for LPC18XX/43XX microcontrollers
18XX43XX
LPCOpen Platform for the NXP LPC18XX/43XX family of Microcontrollers
Main Page
Modules
Data Structures
Files
File List
Globals
software
lpc_core
lpc_chip
chip_18xx_43xx
dac_18xx_43xx.h
Go to the documentation of this file.
1
/*
2
* @brief LPC18xx/43xx D/A conversion driver
3
*
4
* @note
5
* Copyright(C) NXP Semiconductors, 2012
6
* All rights reserved.
7
*
8
* @par
9
* Software that is described herein is for illustrative purposes only
10
* which provides customers with programming information regarding the
11
* LPC products. This software is supplied "AS IS" without any warranties of
12
* any kind, and NXP Semiconductors and its licensor disclaim any and
13
* all warranties, express or implied, including all implied warranties of
14
* merchantability, fitness for a particular purpose and non-infringement of
15
* intellectual property rights. NXP Semiconductors assumes no responsibility
16
* or liability for the use of the software, conveys no license or rights under any
17
* patent, copyright, mask work right, or any other intellectual property rights in
18
* or to any products. NXP Semiconductors reserves the right to make changes
19
* in the software without notification. NXP Semiconductors also makes no
20
* representation or warranty that such application will be suitable for the
21
* specified use without further testing or modification.
22
*
23
* @par
24
* Permission to use, copy, modify, and distribute this software and its
25
* documentation is hereby granted, under NXP Semiconductors' and its
26
* licensor's relevant copyrights in the software, without fee, provided that it
27
* is used in conjunction with NXP Semiconductors microcontrollers. This
28
* copyright, permission, and disclaimer notice must appear in all copies of
29
* this code.
30
*/
31
32
#ifndef __DAC_18XX_43XX_H_
33
#define __DAC_18XX_43XX_H_
34
35
#ifdef __cplusplus
36
extern
"C"
{
37
#endif
38
47
typedef
struct
{
48
__IO uint32_t
CR
;
49
__IO uint32_t
CTRL
;
50
__IO uint32_t
CNTVAL
;
51
}
LPC_DAC_T
;
52
56
#define DAC_VALUE(n) ((uint32_t) ((n & 0x3FF) << 6))
57
62
#define DAC_BIAS_EN ((uint32_t) (1 << 16))
63
64
#define DAC_CCNT_VALUE(n) ((uint32_t) (n & 0xffff))
65
67
#define DAC_DBLBUF_ENA ((uint32_t) (1 << 1))
68
69
#define DAC_CNT_ENA ((uint32_t) (1 << 2))
70
71
#define DAC_DMA_ENA ((uint32_t) (1 << 3))
72
73
#define DAC_DACCTRL_MASK ((uint32_t) (0x0F))
74
78
typedef
enum
IP_DAC_CURRENT_OPT {
79
DAC_MAX_UPDATE_RATE_1MHz
= 0,
81
DAC_MAX_UPDATE_RATE_400kHz
83
}
DAC_CURRENT_OPT_T
;
84
92
void
Chip_DAC_Init
(
LPC_DAC_T
*pDAC);
93
99
void
Chip_DAC_DeInit
(
LPC_DAC_T
*pDAC);
100
107
void
Chip_DAC_UpdateValue
(
LPC_DAC_T
*pDAC, uint32_t dac_value);
108
117
void
Chip_DAC_SetBias
(
LPC_DAC_T
*pDAC, uint32_t bias);
118
129
STATIC
INLINE
void
Chip_DAC_ConfigDAConverterControl
(
LPC_DAC_T
*pDAC, uint32_t dacFlags)
130
{
131
uint32_t temp;
132
133
temp = pDAC->
CTRL
& ~
DAC_DACCTRL_MASK
;
134
pDAC->
CTRL
= temp | dacFlags;
135
}
136
143
STATIC
INLINE
void
Chip_DAC_SetDMATimeOut
(
LPC_DAC_T
*pDAC, uint32_t time_out)
144
{
145
pDAC->
CNTVAL
=
DAC_CCNT_VALUE
(time_out);
146
}
147
153
STATIC
INLINE
IntStatus
Chip_DAC_GetIntStatus
(
LPC_DAC_T
*pDAC)
154
{
155
return
(pDAC->
CTRL
& 0x01) ?
SET
:
RESET
;
156
}
157
162
#ifdef __cplusplus
163
}
164
#endif
165
166
#endif
/* __DAC_18XX_43XX_H_ */
Generated on Fri Feb 20 2015 21:29:42 for LPCOpen Platform for LPC18XX/43XX microcontrollers by
1.8.3.1