ATY_LIB
V2_102_230218
ATY_LIB for general devices or ALGO
Loading...
Searching...
No Matches
fw_dma.h
Go to the documentation of this file.
1
// Copyright 2021 IOsetting <iosetting(at)outlook.com>
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef ___FW_DMA_H___
16
#define ___FW_DMA_H___
17
18
#include "
fw_conf.h
"
19
#include "
fw_types.h
"
20
21
typedef
enum
22
{
23
DMA_BusPriority_Lowest
= 0x00,
24
DMA_BusPriority_Low
= 0x01,
25
DMA_BusPriority_High
= 0x02,
26
DMA_BusPriority_Highest
= 0x03,
27
}
DMA_BusPriority_t
;
28
29
/**************************************************************************** /
30
* DMA M2M
31
*/
32
33
#define DMA_M2M_SetSrcAddrIncrement(__STATE__) SFRX_ASSIGN(DMA_M2M_CFG, 5, __STATE__)
34
#define DMA_M2M_SetDstAddrIncrement(__STATE__) SFRX_ASSIGN(DMA_M2M_CFG, 4, __STATE__)
35
#define DMA_M2M_SetBusPriority(__PRI__) SFRX_ASSIGN2BIT(DMA_M2M_CFG, 0, __PRI__)
36
#define DMA_M2M_SetEnabled(__STATE__) SFRX_ASSIGN(DMA_M2M_CR, 7, __STATE__)
37
#define DMA_M2M_Start() SFRX_SET(DMA_M2M_CR, 6)
38
#define DMA_M2M_ClearInterrupt() SFRX_RESET(DMA_M2M_STA, 0)
42
#define DMA_M2M_SetTxLength(__LEN__) do{SFRX_ON(); DMA_M2M_AMT = (__LEN__); SFRX_OFF();}while(0)
43
#define DMA_M2M_SetSrcAddr(__16BIT_ADDR__) do{ \
44
SFRX_ON(); \
45
(DMA_M2M_TXAH = ((__16BIT_ADDR__) >> 8)); \
46
(DMA_M2M_TXAL = ((__16BIT_ADDR__) & 0xFF)); \
47
SFRX_OFF(); \
48
} while(0)
49
#define DMA_M2M_SetDstAddr(__16BIT_ADDR__) do{ \
50
SFRX_ON(); \
51
(DMA_M2M_RXAH = ((__16BIT_ADDR__) >> 8)); \
52
(DMA_M2M_RXAL = ((__16BIT_ADDR__) & 0xFF)); \
53
SFRX_OFF(); \
54
} while(0)
55
56
/**************************************************************************** /
57
* DMA ADC
58
*/
59
60
typedef
enum
61
{
62
DMA_ADC_ConvTimes_1
= 0x00,
63
DMA_ADC_ConvTimes_2
= 0x08,
64
DMA_ADC_ConvTimes_4
= 0x09,
65
DMA_ADC_ConvTimes_8
= 0x0a,
66
DMA_ADC_ConvTimes_16
= 0x0b,
67
DMA_ADC_ConvTimes_32
= 0x0c,
68
DMA_ADC_ConvTimes_64
= 0x0d,
69
DMA_ADC_ConvTimes_128
= 0x0e,
70
DMA_ADC_ConvTimes_256
= 0x0f,
71
}
DMA_ADC_ConvTimes_t
;
72
73
#define DMA_ADC_SetBusPriority(__PRI__) SFRX_ASSIGN2BIT(DMA_ADC_CFG, 0, __PRI__)
74
#define DMA_ADC_SetEnabled(__STATE__) SFRX_ASSIGN(DMA_ADC_CR, 7, __STATE__)
75
#define DMA_ADC_Start() SFRX_SET(DMA_ADC_CR, 6)
76
#define DMA_ADC_ClearInterrupt() SFRX_RESET(DMA_ADC_STA, 0)
77
#define DMA_ADC_SetDstAddr(__16BIT_ADDR__) do{ \
78
SFRX_ON(); \
79
(DMA_ADC_RXAH = ((__16BIT_ADDR__) >> 8)); \
80
(DMA_ADC_RXAL = ((__16BIT_ADDR__) & 0xFF)); \
81
SFRX_OFF(); \
82
} while(0)
83
#define DMA_ADC_SetConvTimes(__TIMES__) do{ \
84
SFRX_ON(); \
85
DMA_ADC_CFG2 = DMA_ADC_CFG2 & ~(0x0F) | ((__TIMES__) & 0x0F); \
86
SFRX_OFF(); \
87
} while(0)
94
#define DMA_ADC_EnableChannels(__16BIT_CHANNEL__) do{ \
95
SFRX_ON(); \
96
DMA_ADC_CHSW0 = (__CHANNEL__ >> 8) & 0xFF; \
97
DMA_ADC_CHSW1 = __CHANNEL__ & 0xFF; \
98
SFRX_OFF(); \
99
} while(0)
100
101
102
103
/**************************************************************************** /
104
* DMA SPI
105
*/
106
107
108
109
#endif
fw_conf.h
DMA_ADC_ConvTimes_t
DMA_ADC_ConvTimes_t
Definition:
fw_dma.h:61
DMA_ADC_ConvTimes_256
@ DMA_ADC_ConvTimes_256
Definition:
fw_dma.h:70
DMA_ADC_ConvTimes_32
@ DMA_ADC_ConvTimes_32
Definition:
fw_dma.h:67
DMA_ADC_ConvTimes_2
@ DMA_ADC_ConvTimes_2
Definition:
fw_dma.h:63
DMA_ADC_ConvTimes_128
@ DMA_ADC_ConvTimes_128
Definition:
fw_dma.h:69
DMA_ADC_ConvTimes_4
@ DMA_ADC_ConvTimes_4
Definition:
fw_dma.h:64
DMA_ADC_ConvTimes_1
@ DMA_ADC_ConvTimes_1
Definition:
fw_dma.h:62
DMA_ADC_ConvTimes_8
@ DMA_ADC_ConvTimes_8
Definition:
fw_dma.h:65
DMA_ADC_ConvTimes_16
@ DMA_ADC_ConvTimes_16
Definition:
fw_dma.h:66
DMA_ADC_ConvTimes_64
@ DMA_ADC_ConvTimes_64
Definition:
fw_dma.h:68
DMA_BusPriority_t
DMA_BusPriority_t
Definition:
fw_dma.h:22
DMA_BusPriority_Lowest
@ DMA_BusPriority_Lowest
Definition:
fw_dma.h:23
DMA_BusPriority_High
@ DMA_BusPriority_High
Definition:
fw_dma.h:25
DMA_BusPriority_Low
@ DMA_BusPriority_Low
Definition:
fw_dma.h:24
DMA_BusPriority_Highest
@ DMA_BusPriority_Highest
Definition:
fw_dma.h:26
fw_types.h
ATY_LIB
FwLib_STC8
include
fw_dma.h
Generated by
1.9.6