ADC Management Task.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
#include <stddef.h>
#include <stdio.h>
#include <avr32/io.h>
#include "compiler.h"
#include "board.h"
#include "gpio.h"
#include "pm_uc3c.h"
#include "scif_uc3c.h"
#include "adcifa.h"
#include "pdca.h"
#include "adc_task.h"
#include "sysclk.h"
#include "dsp.h"
#include "conf_demo.h"
Macros | |
#define | ADC_TRIGGER_SYNC_MIN 1 |
#define | ADC_TRIGGER_SYNC_NONE 0 |
#define | ADC_TRIGGER_SYNC_ORDER 2 |
#define | AVR32_ADCIFA_IRQ_GROUP 36 |
The ADCIFA window monitor interrupt handler. More... | |
Functions | |
void | adc_task (void) |
ADC Task: More... | |
void | adc_task_init (void) |
main function : initialization and loop to display ADC values More... | |
ISR (adc_int_window_handler, AVR32_ADCIFA_IRQ_GROUP, 0) | |
ISR (pdca_int_handler_seq0, AVR32_PDCA_IRQ_GROUP0, 0) | |
The PDCA interrupt handler. More... | |
void | pdca_init (void) |
Configure the PDCA and register its interrupt pdca_int_handler. More... | |
Variables | |
adcifa_opt_t | adc_config_t |
adcifa_sequencer_conversion_opt_t | adc_conversion_sequencer0_t [ADC_NUMBER_OF_CONV_SEQ0] |
adcifa_sequencer_conversion_opt_t | adc_conversion_sequencer1_t [ADC_NUMBER_OF_CONV_SEQ1] |
adcifa_sequencer_opt_t | adc_sequencer0_config_t |
adcifa_sequencer_opt_t | adc_sequencer1_config_t |
int16_t | adc_values_seq0 [ADC_PDCA_CHANNEL_NUMBER_OF_SAMPLES] |
int16_t | adc_values_seq1 [ADC_NUMBER_OF_CONV_SEQ1] |
volatile adcifa_window_monitor_opt_t | adc_window_config_t |
volatile avr32_adcifa_t * | adcifa = &AVR32_ADCIFA |
volatile bool | flag_end_of_acquisition = false |
static const pdca_channel_options_t | pdca_channel0_config_t |
volatile int16_t | potentiometer_value |
A_ALIGNED dsp16_t | signalin_gui [GUI_BUFFER_LENGTH] |
volatile float | signalin_remote [GUI_BUFFER_LENGTH] |
volatile int32_t | trigger_process_state = ADC_TRIGGER_SYNC_NONE |
#define ADC_TRIGGER_SYNC_MIN 1 |
Referenced by adc_task(), adc_task_init(), and ISR().
#define ADC_TRIGGER_SYNC_NONE 0 |
#define ADC_TRIGGER_SYNC_ORDER 2 |
Referenced by ISR().
#define AVR32_ADCIFA_IRQ_GROUP 36 |
The ADCIFA window monitor interrupt handler.
void adc_task | ( | void | ) |
ADC Task:
References ADC_NUMBER_OF_CONV_SEQ0, ADC_NUMBER_OF_CONV_SEQ1, ADC_SCALE_GAIN, ADC_SCALE_OFFSET, ADC_TRIGGER_SYNC_MIN, adc_values_seq0, adc_values_seq1, adcifa, adcifa_configure_window_monitor(), adcifa_enable_interrupt(), adcifa_get_values_from_sequencer(), ADCIFA_SEQ0, ADCIFA_SEQ1, adcifa_start_sequencer(), ADCIFA_STATUS_COMPLETED, ADCIFA_WINDOW_MODE_BELOW, flag_end_of_acquisition, GUI_BUFFER_LENGTH, adcifa_window_monitor_opt_t::high_threshold, i, j, adcifa_window_monitor_opt_t::low_threshold, adcifa_window_monitor_opt_t::mode, potentiometer_value, signalin_gui, signalin_remote, temp, and trigger_process_state.
Referenced by main().
void adc_task_init | ( | void | ) |
main function : initialization and loop to display ADC values
References adc_conversion_sequencer0_t, adc_conversion_sequencer1_t, ADC_EXT_INPUT_FUNCTION, ADC_EXT_INPUT_PIN, ADC_PDCA_CHANNEL_SEQ0, ADC_POTENTIOMETER_FUNCTION, ADC_POTENTIOMETER_PIN, ADC_TRIGGER_SYNC_MIN, adcifa, adcifa_clear_interrupt(), adcifa_configure(), adcifa_configure_sequencer(), adcifa_configure_window_monitor(), adcifa_enable_interrupt(), adcifa_get_calibration_data(), ADCIFA_SEQ0, ADCIFA_SEQ1, adcifa_start_itimer(), ADCIFA_WINDOW_MODE_BELOW, cpu_irq_restore(), cpu_irq_save(), gpio_enable_module(), adcifa_window_monitor_opt_t::high_threshold, irq_register_handler, adcifa_window_monitor_opt_t::mode, pdca_enable(), pdca_init(), sysclk_get_pbc_hz(), and trigger_process_state.
Referenced by main().
ISR | ( | adc_int_window_handler | , |
AVR32_ADCIFA_IRQ_GROUP | , | ||
0 | |||
) |
References ADC_PDCA_CHANNEL_SEQ0, ADC_TRIGGER_SYNC_MIN, ADC_TRIGGER_SYNC_ORDER, adcifa, adcifa_clear_interrupt(), adcifa_configure_window_monitor(), adcifa_disable_interrupt(), ADCIFA_SEQ0, ADCIFA_WINDOW_MODE_ABOVE, gpio_clr_gpio_pin(), adcifa_window_monitor_opt_t::high_threshold, adcifa_window_monitor_opt_t::low_threshold, adcifa_window_monitor_opt_t::mode, pdca_enable(), potentiometer_value, and trigger_process_state.
ISR | ( | pdca_int_handler_seq0 | , |
AVR32_PDCA_IRQ_GROUP0 | , | ||
0 | |||
) |
The PDCA interrupt handler.
The handler disables the PDCA transfer. The interrupt will happen each time the transfer is completed.
References ADC_PDCA_CHANNEL_SEQ0, flag_end_of_acquisition, gpio_set_gpio_pin(), pdca_disable(), pdca_enable_interrupt_transfer_complete(), and pdca_init_channel().
void pdca_init | ( | void | ) |
Configure the PDCA and register its interrupt pdca_int_handler.
References ADC_PDCA_CHANNEL_SEQ0, cpu_irq_restore(), cpu_irq_save(), irq_register_handler, pdca_enable_interrupt_transfer_complete(), and pdca_init_channel().
Referenced by adc_task_init().
adcifa_opt_t adc_config_t |
Referenced by main().
adcifa_sequencer_conversion_opt_t adc_conversion_sequencer0_t[ADC_NUMBER_OF_CONV_SEQ0] |
Referenced by adc_task_init().
adcifa_sequencer_conversion_opt_t adc_conversion_sequencer1_t[ADC_NUMBER_OF_CONV_SEQ1] |
Referenced by adc_task_init().
adcifa_sequencer_opt_t adc_sequencer0_config_t |
adcifa_sequencer_opt_t adc_sequencer1_config_t |
int16_t adc_values_seq0[ADC_PDCA_CHANNEL_NUMBER_OF_SAMPLES] |
Referenced by adc_process_task(), and adc_task().
int16_t adc_values_seq1[ADC_NUMBER_OF_CONV_SEQ1] |
Referenced by adc_process_task(), and adc_task().
volatile adcifa_window_monitor_opt_t adc_window_config_t |
volatile avr32_adcifa_t* adcifa = &AVR32_ADCIFA |
Referenced by adc_process_init(), adc_process_task(), adc_task(), adc_task_init(), and ISR().
Referenced by adc_task(), and ISR().
|
static |
volatile int16_t potentiometer_value |
Referenced by adc_task(), gui_task(), and ISR().
A_ALIGNED dsp16_t signalin_gui[GUI_BUFFER_LENGTH] |
Referenced by adc_task(), and gui_task().
volatile float signalin_remote[GUI_BUFFER_LENGTH] |
Referenced by adc_task(), and noise_task().
volatile int32_t trigger_process_state = ADC_TRIGGER_SYNC_NONE |
Referenced by adc_task(), adc_task_init(), and ISR().