RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
arm
atsam
include
libchip
include
acc.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 _ACC_
48
#define _ACC_
49
50
/*----------------------------------------------------------------------------
51
* Headers
52
*----------------------------------------------------------------------------*/
53
#include "chip.h"
54
55
#include <stdint.h>
56
#include <
assert.h
>
57
58
/*------------------------------------------------------------------------------
59
* Definitions
60
*------------------------------------------------------------------------------*/
61
#define ACC_SELPLUS_AD12B0 0
62
#define ACC_SELPLUS_AD12B1 1
63
#define ACC_SELPLUS_AD12B2 2
64
#define ACC_SELPLUS_AD12B3 3
65
#define ACC_SELPLUS_AD12B4 4
66
#define ACC_SELPLUS_AD12B5 5
67
#define ACC_SELPLUS_AD12B6 6
68
#define ACC_SELPLUS_AD12B7 7
69
#define ACC_SELMINUS_TS 0
70
#define ACC_SELMINUS_ADVREF 1
71
#define ACC_SELMINUS_DAC0 2
72
#define ACC_SELMINUS_DAC1 3
73
#define ACC_SELMINUS_AD12B0 4
74
#define ACC_SELMINUS_AD12B1 5
75
#define ACC_SELMINUS_AD12B2 6
76
#define ACC_SELMINUS_AD12B3 7
77
78
#ifdef __cplusplus
79
extern
"C"
{
80
#endif
81
82
/*------------------------------------------------------------------------------
83
* Macros function of register access
84
*------------------------------------------------------------------------------*/
85
#define ACC_CfgModeReg(pAcc, mode) { \
86
(pAcc)->ACC_MR = (mode);\
87
}
88
89
#define ACC_GetModeReg(pAcc) ((pAcc)->ACC_MR)
90
91
#define ACC_StartConversion(pAcc) ((pAcc)->ACC_CR = ACC_CR_START)
92
93
#define ACC_SoftReset(pAcc) ((pAcc)->ACC_CR = ACC_CR_SWRST)
94
95
#define ACC_EnableChannel(pAcc, dwChannel) {\
96
assert(dwChannel < 16);\
97
(pAcc)->ACC_CHER = (1 << (dwChannel));\
98
}
99
100
#define ACC_DisableChannel(pAcc, dwChannel) {\
101
assert(dwChannel < 16);\
102
(pAcc)->ACC_CHDR = (1 << (dwChannel));\
103
}
104
105
#define ACC_EnableIt(pAcc, dwMode) {\
106
assert(((dwMode)&0xFFF00000)== 0);\
107
(pAcc)->ACC_IER = (dwMode);\
108
}
109
110
#define ACC_DisableIt(pAcc, dwMode) {\
111
assert(((dwMode)&0xFFF00000)== 0);\
112
(pAcc)->ACC_IDR = (dwMode);\
113
}
114
115
#define ACC_EnableDataReadyIt(pAcc) ((pAcc)->ACC_IER = AT91C_ACC_DRDY)
116
117
#define ACC_GetStatus(pAcc) ((pAcc)->ACC_ISR)
118
119
#define ACC_GetChannelStatus(pAcc) ((pAcc)->ACC_CHSR)
120
121
#define ACC_GetInterruptMaskStatus(pAcc) ((pAcc)->ACC_IMR)
122
123
#define ACC_GetLastConvertedData(pAcc) ((pAcc)->ACC_LCDR)
124
125
#define ACC_CfgAnalogCtrlReg(pAcc, dwMode) {\
126
assert(((dwMode) & 0xFFFCFF3C) == 0);\
127
(pAcc)->ACC_ACR = (dwMode);\
128
}
129
130
#define ACC_CfgExtModeReg(pAcc, extmode) {\
131
assert(((extmode) & 0xFF00FFFE) == 0);\
132
(pAcc)->ACC_EMR = (extmode);\
133
}
134
135
#define ACC_GetAnalogCtrlReg(pAcc) ((pAcc)->ACC_ACR)
136
137
/*------------------------------------------------------------------------------
138
* Exported functions
139
*------------------------------------------------------------------------------*/
140
extern
void
ACC_Configure
(
Acc
*pAcc, uint8_t idAcc, uint8_t ucSelplus,
141
uint8_t ucSelminus, uint16_t wAc_en, uint16_t wEdge, uint16_t wInvert);
142
143
extern
void
ACC_SetComparisonPair
(
Acc
*pAcc, uint8_t ucSelplus,
144
uint8_t ucSelminus);
145
146
extern
uint32_t
ACC_GetComparisonResult
(
Acc
*pAcc, uint32_t dwStatus);
147
148
#ifdef __cplusplus
149
}
150
#endif
151
152
#endif
/* #ifndef _ACC_ */
ACC_SetComparisonPair
void ACC_SetComparisonPair(Acc *pAcc, uint8_t ucSelplus, uint8_t ucSelminus)
Definition
acc.c:121
ACC_Configure
void ACC_Configure(Acc *pAcc, uint8_t idAcc, uint8_t ucSelplus, uint8_t ucSelminus, uint16_t wAc_en, uint16_t wEdge, uint16_t wInvert)
Initialize the ACC controller.
Definition
acc.c:91
ACC_GetComparisonResult
uint32_t ACC_GetComparisonResult(Acc *pAcc, uint32_t dwStatus)
Definition
acc.c:141
assert.h
This header file provides the interfaces of the Assert Handler.
Acc
Acc hardware registers.
Definition
component_acc.h:41
Generated by
1.18.0