RTEMS 6.1-rc2
Loading...
Searching...
No Matches
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
79extern "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 *------------------------------------------------------------------------------*/
140extern 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
143extern void ACC_SetComparisonPair(Acc *pAcc, uint8_t ucSelplus,
144 uint8_t ucSelminus);
145
146extern uint32_t ACC_GetComparisonResult(Acc *pAcc, uint32_t dwStatus);
147
148#ifdef __cplusplus
149}
150#endif
151
152#endif /* #ifndef _ACC_ */
void ACC_SetComparisonPair(Acc *pAcc, uint8_t ucSelplus, uint8_t ucSelminus)
Definition: acc.c:121
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
uint32_t ACC_GetComparisonResult(Acc *pAcc, uint32_t dwStatus)
Definition: acc.c:141
This header file provides the interfaces of the Assert Handler.
Acc hardware registers.
Definition: component_acc.h:41