Program files for Example program for EVAL-AD7768-1
Dependencies: platform_drivers
app/app_config.c
- Committer:
- Kjansen
- Date:
- 2021-09-24
- Revision:
- 1:260e834a8dc1
File content as of revision 1:260e834a8dc1:
/***************************************************************************//** * @file app_config.c * @brief Application configurations module * @details This module contains the configurations needed for IIO application ******************************************************************************** * Copyright (c) 2021 Analog Devices, Inc. * All rights reserved. * * This software is proprietary to Analog Devices, Inc. and its licensors. * By using this software you agree to the terms of the associated * Analog Devices Software License Agreement. *******************************************************************************/ /******************************************************************************/ /***************************** Include Files **********************************/ /******************************************************************************/ #include <stdbool.h> #include "app_config.h" #include "adc_data_capture.h" #include "ad77681_iio.h" #include "error.h" #include "uart.h" #include "irq.h" #include "gpio.h" /******************************************************************************/ /************************ Macros/Constants ************************************/ /******************************************************************************/ /******************************************************************************/ /*************************** Types Declarations *******************************/ /******************************************************************************/ /* * UART init parameters structure */ struct uart_init_param uart_init_params = { .device_id = NULL, .baud_rate = IIO_UART_BAUD_RATE, .extra = &uart_init_extra_params }; /* LED GPIO descriptor */ struct gpio_init_param gpio_init_led_green = { .number = LED_GREEN, .extra = NULL }; /* External interrupt init parameters */ struct irq_init_param external_int_init_param = { .irq_ctrl_id = EXTERNAL_INT_ID1, .extra = &mbed_ext_int_init_param }; /* External interrupt callback descriptor */ struct callback_desc external_int_callback_desc = { data_capture_callback, NULL, NULL }; /* LED GPIO descriptor */ gpio_desc *led_green_gpio_desc = NULL; /* External interrupt descriptor */ struct irq_ctrl_desc *external_int_desc; /******************************************************************************/ /************************ Functions Prototypes ********************************/ /******************************************************************************/ /******************************************************************************/ /************************ Functions Definitions *******************************/ /******************************************************************************/ /** * @brief Initialize the GPIOs * @return SUCCESS in case of success, FAILURE otherwise * @details This function initialize the GPIOs used by application */ static int32_t init_gpio(void) { /* Initialize the LED GREEN GPIO */ if (gpio_get_optional(&led_green_gpio_desc, &gpio_init_led_green) != SUCCESS) { return FAILURE; } if (led_green_gpio_desc) { if (gpio_direction_output(led_green_gpio_desc, GPIO_HIGH) != SUCCESS) { return FAILURE; } } return SUCCESS; } /** * @brief Initialize the IRQ contoller * @return SUCCESS in case of success, FAILURE otherwise * @details This function initialize the interrupts for system peripherals */ static int32_t init_interrupt(void) { /* Init interrupt controller for external interrupt */ if (irq_ctrl_init(&external_int_desc, &external_int_init_param) == FAILURE) { return FAILURE; } /* Register a callback function for external interrupt */ if (irq_register_callback(external_int_desc, EXTERNAL_INT_ID1, &external_int_callback_desc) == FAILURE) { return FAILURE; } return SUCCESS; } /** * @brief Initialize the system peripherals * @return SUCCESS in case of success, FAILURE otherwise */ int32_t init_system(void) { if (init_gpio() != SUCCESS) { return FAILURE; } if (init_interrupt() != SUCCESS) { return FAILURE; } return SUCCESS; }