LibDriver ISD17XX
Loading...
Searching...
No Matches
driver_isd17xx_basic.c
Go to the documentation of this file.
1
36
38
39static isd17xx_handle_t gs_handle;
40
50{
51 uint8_t res;
52
53 /* link function */
65
66 /* set the type */
67 res = isd17xx_set_type(&gs_handle, type);
68 if (res != 0)
69 {
70 isd17xx_interface_debug_print("isd17xx: set type failed.\n");
71
72 return 1;
73 }
74
75 /* init */
76 res = isd17xx_init(&gs_handle);
77 if (res != 0)
78 {
79 isd17xx_interface_debug_print("isd17xx: init failed.\n");
80
81 return 1;
82 }
83
84 /* power up */
85 res = isd17xx_power_up(&gs_handle);
86 if (res != 0)
87 {
88 isd17xx_interface_debug_print("isd17xx: power up failed.\n");
89 (void)isd17xx_deinit(&gs_handle);
90
91 return 1;
92 }
93
94 /* set default control volume */
96 if (res != 0)
97 {
98 isd17xx_interface_debug_print("isd17xx: set volume control failed.\n");
99 (void)isd17xx_deinit(&gs_handle);
100
101 return 1;
102 }
103
104 /* set default volume */
106 if (res != 0)
107 {
108 isd17xx_interface_debug_print("isd17xx: set volume failed.\n");
109 (void)isd17xx_deinit(&gs_handle);
110
111 return 1;
112 }
113
114 /* set default monitor input */
116 if (res != 0)
117 {
118 isd17xx_interface_debug_print("isd17xx: set monitor input failed.\n");
119 (void)isd17xx_deinit(&gs_handle);
120
121 return 1;
122 }
123
124 /* set default mix input */
126 if (res != 0)
127 {
128 isd17xx_interface_debug_print("isd17xx: set mix input failed.\n");
129 (void)isd17xx_deinit(&gs_handle);
130
131 return 1;
132 }
133
134 /* set default sound effect editing */
136 if (res != 0)
137 {
138 isd17xx_interface_debug_print("isd17xx: set sound effect editing failed.\n");
139 (void)isd17xx_deinit(&gs_handle);
140
141 return 1;
142 }
143
144 /* set default spi ft */
146 if (res != 0)
147 {
148 isd17xx_interface_debug_print("isd17xx: set spi ft failed.\n");
149 (void)isd17xx_deinit(&gs_handle);
150
151 return 1;
152 }
153
154 /* set default analog output */
156 if (res != 0)
157 {
158 isd17xx_interface_debug_print("isd17xx: set analog output failed.\n");
159 (void)isd17xx_deinit(&gs_handle);
160
161 return 1;
162 }
163
164 /* set default pwm speaker */
166 if (res != 0)
167 {
168 isd17xx_interface_debug_print("isd17xx: set pwm speaker failed.\n");
169 (void)isd17xx_deinit(&gs_handle);
170
171 return 1;
172 }
173
174 /* set default power up analog output */
176 if (res != 0)
177 {
178 isd17xx_interface_debug_print("isd17xx: set power up analog output failed.\n");
179 (void)isd17xx_deinit(&gs_handle);
180
181 return 1;
182 }
183
184 /* set default v alert */
186 if (res != 0)
187 {
188 isd17xx_interface_debug_print("isd17xx: set v alert failed.\n");
189 (void)isd17xx_deinit(&gs_handle);
190
191 return 1;
192 }
193
194 /* set default eom */
196 if (res != 0)
197 {
198 isd17xx_interface_debug_print("isd17xx: set eom failed.\n");
199 (void)isd17xx_deinit(&gs_handle);
200
201 return 1;
202 }
203
204 /* 100ms */
206
207 /* check the memory */
208 res = isd17xx_check_memory(&gs_handle);
209 if (res != 0)
210 {
211 isd17xx_interface_debug_print("isd17xx: check memory failed.\n");
212 (void)isd17xx_deinit(&gs_handle);
213
214 return 1;
215 }
216
217 return 0;
218}
219
228{
229 if (isd17xx_deinit(&gs_handle) != 0)
230 {
231 return 1;
232 }
233 else
234 {
235 return 0;
236 }
237}
238
247{
248 uint8_t res;
249 uint8_t status2;
250 uint16_t status1;
251
252 /* global erase */
253 res = isd17xx_global_erase(&gs_handle);
254 if (res != 0)
255 {
256 return 1;
257 }
258
259 /* wait */
260 while (1)
261 {
262 /* get status */
263 res = isd17xx_get_status(&gs_handle, &status1, &status2);
264 if (res != 0)
265 {
266 return 1;
267 }
268
269 /* check erase */
271 {
272 break;
273 }
274
275 /* delay 200ms */
277 }
278
279 return 0;
280}
281
291uint8_t isd17xx_basic_erase(uint16_t start_addr, uint16_t end_addr)
292{
293 uint8_t res;
294 uint8_t status2;
295 uint16_t status1;
296
297 /* set erase address */
298 res = isd17xx_set_erase(&gs_handle, start_addr, end_addr);
299 if (res != 0)
300 {
301 return 1;
302 }
303
304 /* erase */
305 res = isd17xx_erase(&gs_handle);
306 if (res != 0)
307 {
308 return 1;
309 }
310
311 /* wait */
312 while (1)
313 {
314 /* get status */
315 res = isd17xx_get_status(&gs_handle, &status1, &status2);
316 if (res != 0)
317 {
318 return 1;
319 }
320
321 /* check erase */
323 {
324 break;
325 }
326
327 /* delay 200ms */
329 }
330
331 return 0;
332}
333
343uint8_t isd17xx_basic_record(uint16_t start_addr, uint16_t end_addr)
344{
345 uint8_t res;
346
347 /* set record address */
348 res = isd17xx_set_record(&gs_handle, start_addr, end_addr);
349 if (res != 0)
350 {
351 return 1;
352 }
353
354 /* record */
355 res = isd17xx_record(&gs_handle);
356 if (res != 0)
357 {
358 return 1;
359 }
360
361 return 0;
362}
363
373uint8_t isd17xx_basic_play(uint16_t start_addr, uint16_t end_addr)
374{
375 uint8_t res;
376
377 /* set play address */
378 res = isd17xx_set_play(&gs_handle, start_addr, end_addr);
379 if (res != 0)
380 {
381 return 1;
382 }
383
384 /* play */
385 res = isd17xx_play(&gs_handle);
386 if (res != 0)
387 {
388 return 1;
389 }
390
391 return 0;
392}
393
403{
404 uint8_t res;
405 uint8_t status2;
406 uint16_t status1;
407
408 /* wait */
409 while (1)
410 {
411 /* get status */
412 res = isd17xx_get_status(&gs_handle, &status1, &status2);
413 if (res != 0)
414 {
415 return 1;
416 }
417
418 /* check the status */
419 if ((status2 & status) != status)
420 {
421 break;
422 }
423
424 /* delay 200ms */
426 }
427
428 return 0;
429}
430
439{
440 uint8_t res;
441
442 /* goto the next */
443 res = isd17xx_next(&gs_handle);
444 if (res != 0)
445 {
446 return 1;
447 }
448
449 return 0;
450}
451
460{
461 uint8_t res;
462
463 /* stop */
464 res = isd17xx_stop(&gs_handle);
465 if (res != 0)
466 {
467 return 1;
468 }
469
470 return 0;
471}
driver isd17xx basic header file
uint8_t isd17xx_global_erase(isd17xx_handle_t *handle)
global erase
uint8_t isd17xx_set_record(isd17xx_handle_t *handle, uint16_t start_addr, uint16_t end_addr)
set the record point
isd17xx_status2_t
isd17xx status2 enumeration definition
uint8_t isd17xx_set_mix_input(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable the mix input
uint8_t isd17xx_set_spi_ft(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable spi ft
uint8_t isd17xx_power_up(isd17xx_handle_t *handle)
power up
uint8_t isd17xx_set_volume(isd17xx_handle_t *handle, uint8_t vol)
set the volume
uint8_t isd17xx_set_type(isd17xx_handle_t *handle, isd17xx_type_t type)
set the chip type
uint8_t isd17xx_set_sound_effect_editing(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable sound effect editing
uint8_t isd17xx_next(isd17xx_handle_t *handle)
next
uint8_t isd17xx_get_status(isd17xx_handle_t *handle, uint16_t *status1, uint8_t *status2)
get the status
uint8_t isd17xx_set_erase(isd17xx_handle_t *handle, uint16_t start_addr, uint16_t end_addr)
set the erase point
uint8_t isd17xx_set_play(isd17xx_handle_t *handle, uint16_t start_addr, uint16_t end_addr)
set the play point
uint8_t isd17xx_stop(isd17xx_handle_t *handle)
stop
uint8_t isd17xx_record(isd17xx_handle_t *handle)
record
uint8_t isd17xx_set_power_up_analog_output(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable power up analog output
uint8_t isd17xx_init(isd17xx_handle_t *handle)
initialize the chip
uint8_t isd17xx_check_memory(isd17xx_handle_t *handle)
check memory
uint8_t isd17xx_set_analog_output(isd17xx_handle_t *handle, isd17xx_analog_output_t output)
set the analog output type
uint8_t isd17xx_set_v_alert(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable v alert
uint8_t isd17xx_erase(isd17xx_handle_t *handle)
erase
uint8_t isd17xx_set_monitor_input(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable the monitor input
uint8_t isd17xx_set_pwm_speaker(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable pwm speaker
struct isd17xx_handle_s isd17xx_handle_t
isd17xx handle structure definition
uint8_t isd17xx_set_eom(isd17xx_handle_t *handle, isd17xx_bool_t enable)
enable or disable eom stop playing
uint8_t isd17xx_set_volume_control(isd17xx_handle_t *handle, isd17xx_vol_control_t control)
set the volume control type
isd17xx_type_t
isd17xx type enumeration definition
uint8_t isd17xx_deinit(isd17xx_handle_t *handle)
close the chip
uint8_t isd17xx_play(isd17xx_handle_t *handle)
play
@ ISD17XX_STATUS2_ERASE
uint8_t isd17xx_basic_stop(void)
basic example stop
#define ISD17XX_BASIC_DEFAULT_VOL_CONTROL
isd17xx basic example default definition
#define ISD17XX_BASIC_DEFAULT_PWM_SPEAKER
uint8_t isd17xx_basic_global_erase(void)
basic example global erase
#define ISD17XX_BASIC_DEFAULT_VOL
#define ISD17XX_BASIC_DEFAULT_SOUND_EFFECT_EDITING
uint8_t isd17xx_basic_poll(isd17xx_status2_t status)
basic example poll
#define ISD17XX_BASIC_DEFAULT_EOM
uint8_t isd17xx_basic_deinit(void)
basic example deinit
uint8_t isd17xx_basic_init(isd17xx_type_t type)
basic example init
uint8_t isd17xx_basic_record(uint16_t start_addr, uint16_t end_addr)
basic example record
#define ISD17XX_BASIC_DEFAULT_POWER_UP_ANALOG_OUTPUT
#define ISD17XX_BASIC_DEFAULT_MONITOR_INPUT
#define ISD17XX_BASIC_DEFAULT_V_ALERT
uint8_t isd17xx_basic_play(uint16_t start_addr, uint16_t end_addr)
basic example play
#define ISD17XX_BASIC_DEFAULT_SPI_FT
uint8_t isd17xx_basic_erase(uint16_t start_addr, uint16_t end_addr)
basic example erase
#define ISD17XX_BASIC_DEFAULT_MIX_INPUT
#define ISD17XX_BASIC_DEFAULT_ANALOG_OUTPUT
uint8_t isd17xx_basic_next(void)
basic example next
void isd17xx_interface_debug_print(const char *const fmt,...)
interface print format data
void isd17xx_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t isd17xx_interface_gpio_reset_deinit(void)
interface gpio reset deinit
uint8_t isd17xx_interface_gpio_reset_write(uint8_t value)
interface gpio reset write
uint8_t isd17xx_interface_spi_transmit(uint8_t *tx, uint8_t *rx, uint16_t len)
interface spi bus transmit
uint8_t isd17xx_interface_gpio_reset_init(void)
interface gpio reset init
uint8_t isd17xx_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t isd17xx_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
uint8_t isd17xx_interface_spi_deinit(void)
interface spi bus deinit
uint8_t isd17xx_interface_spi_init(void)
interface spi bus init