LibDriver AD9833
Loading...
Searching...
No Matches
driver_ad9833_basic.c
Go to the documentation of this file.
1
36
37#include "driver_ad9833_basic.h"
38
39static ad9833_handle_t gs_handle;
40
48uint8_t ad9833_basic_init(void)
49{
50 uint8_t res;
51
52 /* link function */
59
60 /* ad9833 init */
61 res = ad9833_init(&gs_handle);
62 if (res != 0)
63 {
64 ad9833_interface_debug_print("ad9833: init failed.\n");
65
66 return 1;
67 }
68
69 /* disable dac power down */
71 if (res != 0)
72 {
73 ad9833_interface_debug_print("ad9833: set dac power down failed.\n");
74 (void)ad9833_deinit(&gs_handle);
75
76 return 1;
77 }
78
79 /* enable internal clock */
81 if (res != 0)
82 {
83 ad9833_interface_debug_print("ad9833: set internal clock disable failed.\n");
84 (void)ad9833_deinit(&gs_handle);
85
86 return 1;
87 }
88
89 return 0;
90}
91
101{
102 uint8_t res;
103
104 /* number */
105 res = ad9833_set_used_frequency_register(&gs_handle, number);
106 if (res != 0)
107 {
108 return 1;
109 }
110
111 /* number */
112 res = ad9833_set_used_phase_register(&gs_handle, number);
113 if (res != 0)
114 {
115 return 1;
116 }
117
118 return 0;
119}
120
131{
132 uint8_t res;
133 uint32_t reg32;
134
135 /* convert to register */
136 res = ad9833_frequency_convert_to_register(&gs_handle, hz, &reg32);
137 if (res != 0)
138 {
139 return 1;
140 }
141
142 /* set frequency */
143 res = ad9833_set_frequency(&gs_handle, number, reg32);
144 if (res != 0)
145 {
146 return 1;
147 }
148
149 return 0;
150}
151
161uint8_t ad9833_basic_set_phase(ad9833_number_t number, double rad)
162{
163 uint8_t res;
164 uint16_t reg16;
165
166 /* convert to register */
167 res = ad9833_phase_convert_to_register(&gs_handle, rad, &reg16);
168 if (res != 0)
169 {
170 return 1;
171 }
172
173 /* set phase */
174 res = ad9833_set_phase(&gs_handle, number, reg16);
175 if (res != 0)
176 {
177 return 1;
178 }
179
180 return 0;
181}
182
192{
193 uint8_t res;
194
195 /* set output mode */
196 res = ad9833_set_output_mode(&gs_handle, mode);
197 if (res != 0)
198 {
199 return 1;
200 }
201
202 return 0;
203}
204
213{
214 /* deinit */
215 if (ad9833_deinit(&gs_handle) != 0)
216 {
217 return 1;
218 }
219
220 return 0;
221}
driver ad9833 basic header file
uint8_t ad9833_set_internal_clock_disable(ad9833_handle_t *handle, ad9833_bool_t enable)
enable or disable internal clock disable
uint8_t ad9833_frequency_convert_to_register(ad9833_handle_t *handle, double hz, uint32_t *reg)
convert the frequency to the register raw data
ad9833_number_t
ad9833 number enumeration definition
uint8_t ad9833_set_dac_power_down(ad9833_handle_t *handle, ad9833_bool_t enable)
enable or disable dac power down
struct ad9833_handle_s ad9833_handle_t
ad9833 handle structure definition
uint8_t ad9833_set_used_frequency_register(ad9833_handle_t *handle, ad9833_number_t number)
set the used frequency register
uint8_t ad9833_phase_convert_to_register(ad9833_handle_t *handle, double rad, uint16_t *reg)
convert the phase to the register raw data
uint8_t ad9833_set_output_mode(ad9833_handle_t *handle, ad9833_output_mode_t mode)
set output mode
uint8_t ad9833_init(ad9833_handle_t *handle)
initialize the chip
ad9833_output_mode_t
ad9833 output mode enumeration definition
uint8_t ad9833_set_frequency(ad9833_handle_t *handle, ad9833_number_t number, uint32_t freq)
set the frequency
uint8_t ad9833_deinit(ad9833_handle_t *handle)
close the chip
uint8_t ad9833_set_used_phase_register(ad9833_handle_t *handle, ad9833_number_t number)
set the used phase register
uint8_t ad9833_set_phase(ad9833_handle_t *handle, ad9833_number_t number, uint16_t phase)
set the phase
@ AD9833_BOOL_FALSE
uint8_t ad9833_basic_set_output_mode(ad9833_output_mode_t mode)
basic example set output mode
uint8_t ad9833_basic_deinit(void)
basic example deinit
uint8_t ad9833_basic_set_frequency(ad9833_number_t number, double hz)
basic example set frequency
uint8_t ad9833_basic_set_used_register(ad9833_number_t number)
basic example set used register
uint8_t ad9833_basic_set_phase(ad9833_number_t number, double rad)
basic example set phase
uint8_t ad9833_basic_init(void)
basic example init
void ad9833_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ad9833_interface_spi_write_cmd(uint8_t *buf, uint16_t len)
interface spi bus write command
uint8_t ad9833_interface_spi_init(void)
interface spi bus init
uint8_t ad9833_interface_spi_deinit(void)
interface spi bus deinit
void ad9833_interface_delay_ms(uint32_t ms)
interface delay ms