RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
arm
atsam
include
libchip
include
dac_dma.h
Go to the documentation of this file.
1
/* ---------------------------------------------------------------------------- */
2
/* Atmel Microcontroller Software Support */
3
/* SAM Software Package License */
4
/* ---------------------------------------------------------------------------- */
5
/* Copyright (c) 2015, Atmel Corporation */
6
/* */
7
/* All rights reserved. */
8
/* */
9
/* Redistribution and use in source and binary forms, with or without */
10
/* modification, are permitted provided that the following condition is met: */
11
/* */
12
/* - Redistributions of source code must retain the above copyright notice, */
13
/* this list of conditions and the disclaimer below. */
14
/* */
15
/* Atmel's name may not be used to endorse or promote products derived from */
16
/* this software without specific prior written permission. */
17
/* */
18
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21
/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28
/* ---------------------------------------------------------------------------- */
29
47
#ifndef _DAC_DMA_
48
#define _DAC_DMA_
49
50
/*----------------------------------------------------------------------------
51
* Headers
52
*----------------------------------------------------------------------------*/
53
#include "chip.h"
54
55
#include <stdint.h>
56
#include <
assert.h
>
57
58
59
#ifdef __cplusplus
60
extern
"C"
{
61
#endif
62
63
64
/*----------------------------------------------------------------------------
65
* Types
66
*----------------------------------------------------------------------------*/
67
69
typedef
void (*
DacCallback
)(uint8_t,
void
*);
70
76
typedef
struct
{
78
uint8_t *
pTxBuff
;
80
uint16_t
TxSize
;
82
uint16_t
loopback
;
84
uint8_t
dacChannel
;
86
DacCallback
callback
;
88
void
*
pArgument
;
89
}
DacCmd
;
90
91
94
typedef
struct
{
96
Dacc
*
pDacHw
;
98
DacCmd
*
pCurrentCommand
;
100
sXdmad
*
pXdmad
;
102
uint8_t
dacId
;
104
volatile
int8_t
semaphore
;
105
}
DacDma
;
106
107
108
/*------------------------------------------------------------------------------
109
* Definitions
110
*------------------------------------------------------------------------------*/
111
#define DAC_OK 0
112
#define DAC_ERROR 1
113
#define DAC_ERROR_LOCK 2
114
115
#define DACC_CHANNEL_0 0
116
#define DACC_CHANNEL_1 1
117
118
/*------------------------------------------------------------------------------
119
* Exported functions
120
*------------------------------------------------------------------------------*/
121
extern
uint32_t
Dac_ConfigureDma
(
DacDma
*pDacd ,
122
Dacc
*pDacHw ,
123
uint8_t DacId,
124
sXdmad
*pXdmad);
125
extern
uint32_t
Dac_SendData
(
DacDma
*pDacd,
DacCmd
*pCommand);
126
127
128
/*------------------------------------------------------------------------------
129
* Macros function of register access
130
*------------------------------------------------------------------------------*/
131
#define DACC_SoftReset(pDACC) ((pDACC)->DACC_CR = DACC_CR_SWRST)
132
#define DACC_CfgModeReg(pDACC, mode) { (pDACC)->DACC_MR = (mode); }
133
#define DACC_GetModeReg(pDACC) ((pDACC)->DACC_MR)
134
#define DACC_CfgTrigger(pDACC, mode) { (pDACC)->DACC_TRIGR = (mode); }
135
136
#define DACC_EnableChannel(pDACC, channel) {(pDACC)->DACC_CHER = (1 << (channel));}
137
#define DACC_DisableChannel(pDACC, channel) {(pDACC)->DACC_CHDR = (1 << (channel));}
138
139
#define DACC_EnableIt(pDACC, mode) {(pDACC)->DACC_IER = (mode);}
140
#define DACC_DisableIt(pDACC, mode) {(pDACC)->DACC_IDR = (mode);}
141
#define DACC_GetStatus(pDACC) ((pDACC)->DACC_ISR)
142
#define DACC_GetChannelStatus(pDACC) ((pDACC)->DACC_CHSR)
143
#define DACC_GetInterruptMaskStatus(pDACC) ((pDACC)->DACC_IMR)
144
145
146
#ifdef __cplusplus
147
}
148
#endif
149
150
#endif
/* #ifndef _DAC_DMA_ */
assert.h
This header file provides the interfaces of the Assert Handler.
Dac_SendData
uint32_t Dac_SendData(DacDma *pDacd, DacCmd *pCommand)
Starts a DAC transfer. This is a non blocking function. It will return as soon as the transfer is sta...
Definition
dac_dma.c:211
Dac_ConfigureDma
uint32_t Dac_ConfigureDma(DacDma *pDacd, Dacc *pDacHw, uint8_t DacId, sXdmad *pXdmad)
Initializes the DacDma structure and the corresponding DAC & DMA . hardware select value....
Definition
dac_dma.c:186
DacCallback
void(*) DacCallback(uint8_t, void *)
Definition
dac_dma.h:69
sXdmad
struct _Xdmad sXdmad
DacCmd
Dac Transfer Request prepared by the application upper layer.
Definition
dac_dma.h:76
DacCmd::pTxBuff
uint8_t * pTxBuff
Definition
dac_dma.h:78
DacCmd::pArgument
void * pArgument
Definition
dac_dma.h:88
DacCmd::callback
DacCallback callback
Definition
dac_dma.h:86
DacCmd::TxSize
uint16_t TxSize
Definition
dac_dma.h:80
DacCmd::dacChannel
uint8_t dacChannel
Definition
dac_dma.h:84
DacCmd::loopback
uint16_t loopback
Definition
dac_dma.h:82
DacDma
Definition
dac_dma.h:94
DacDma::dacId
uint8_t dacId
Definition
dac_dma.h:102
DacDma::pXdmad
sXdmad * pXdmad
Definition
dac_dma.h:100
DacDma::semaphore
volatile int8_t semaphore
Definition
dac_dma.h:104
DacDma::pDacHw
Dacc * pDacHw
Definition
dac_dma.h:96
DacDma::pCurrentCommand
DacCmd * pCurrentCommand
Definition
dac_dma.h:98
Dacc
Dacc hardware registers.
Definition
component_dacc.h:41
Generated by
1.18.0