#include "board.h"#include "hpm_debug_console.h"#include "hpm_adc16_drv.h"#include "hpm_pwm_drv.h"#include "adc16.h"#include "hpm_trgm_drv.h"#include "hpm_trgmmux_src.h"#include "hpm_dmamux_drv.h"#include "hpm_dma_drv.h"#include "hpm_spi_drv.h"#include "hpm_misc.h"Functions | |
| void | board_init_spi_pins_test (SPI_Type *ptr) |
| static uint8_t | get_adc_conv_mode (void) |
| void | isr_adc16 (void) |
| hpm_stat_t | process_pmt_data (uint32_t *buff, int32_t start_pos, uint32_t len) |
| void | init_trigger_source (PWM_Type *ptr) |
| Initialize trigger source ;初始化触发源PWM. More... | |
| void | init_trigger_mux (TRGM_Type *ptr) |
| Initialize TRGM ;初始化互联管理器 More... | |
| void | hdma_spi_tx_chain_config (void) |
| HDMA chain transmission configuration;HDMA链式传输配置 task 1:SPI->TRANSCTRL configuration; ;SPI数据格式配置 task 2:SPI->CMD configuration;SPI命令寄存器配置 task 3:SPI->DATA write;SPI数据寄存器写入 task 4:dummy buff copy;空字节buff拷贝 task 5:SPI->DATA read;SPI->DATA读取 Each task is connected through a linked list adc_descriptors1 and executed in a sequential loop ;各任务通过链表adc_descriptors1连接起来,按照顺序循环执行 More... | |
| void | hdma_spi_config (void) |
| void | prepare_spi_sent_data (void) |
| void | spi_init (void) |
| set SPI sclk frequency, format config, control config for master ;配置成主模式传输,SPI时钟频率,数据格式,传输控制,控制配置 More... | |
| void | init_trigger_target (ADC16_Type *ptr, uint8_t trig_ch, bool inten) |
| Initialize trigger target ;初始化触发目标 More... | |
| hpm_stat_t | init_common_config (adc16_conversion_mode_t conv_mode) |
| Initialize ADC common configuration ;初始化ADC通用配置 More... | |
| void | init_preemption_config (void) |
| Initialize preemption conversion mode.Including trigger source initialization, trigger target initialization, TRGM initialization, and DMA initialization ;ADC抢占转换模式初始化,包括触发源初始化、触发目标初始化、互联管理器初始化和DMA初始化 More... | |
| void | preemption_handler (void) |
| int | main (void) |
Variables | |
| uint32_t | seq_buff [(1024U)] |
| uint32_t | pmt_buff [ADC_SOC_PMT_MAX_DMA_BUFF_LEN_IN_4BYTES] |
| uint8_t | seq_adc_channel [] = {BOARD_APP_ADC16_CH_1} |
| uint8_t | trig_adc_channel [] = {BOARD_APP_ADC16_CH_1} |
| __IO uint8_t | seq_full_complete_flag |
| __IO uint8_t | trig_complete_flag |
| uint8_t | sendbuff [2] |
| uint8_t | spi_buf [4] |
| uint8_t | test_buff3 [2] |
| uint8_t | test_buff4 [2] |
| dma_linked_descriptor_t | adc_descriptors1 [6] |
| static uint32_t | spi_transctrl [5] |
| spi_control_config_t | control_config = {0} |
| #define APP_ADC16_CORE HPM_CORE0 |
| #define APP_ADC16_PMT_DMA_BUFF_LEN_IN_4BYTES ADC_SOC_PMT_MAX_DMA_BUFF_LEN_IN_4BYTES |
| #define APP_ADC16_PMT_IRQ_EVENT adc16_event_trig_complete |
| #define APP_ADC16_PMT_PWM BOARD_APP_ADC16_PMT_PWM |
| #define APP_ADC16_PMT_PWM_REFCH_A (8U) |
| #define APP_ADC16_PMT_TRGM BOARD_APP_ADC16_PMT_TRGM |
| #define APP_ADC16_PMT_TRGM_IN BOARD_APP_ADC16_PMT_TRGM_IN |
| #define APP_ADC16_PMT_TRGM_OUT BOARD_APP_ADC16_PMT_TRGM_OUT |
| #define APP_ADC16_PMT_TRIG_CH BOARD_APP_ADC16_PMT_TRIG_CH |
| #define APP_ADC16_SEQ_DMA_BUFF_LEN_IN_4BYTES (1024U) |
| #define APP_ADC16_SEQ_IRQ_EVENT adc16_event_seq_single_complete |
| #define APP_ADC16_SEQ_START_POS (0U) |
| #define APP_SPI_BASE HPM_SPI3 |
| #define APP_SPI_CLK_NAME clock_spi3 |
| #define APP_SPI_IRQ IRQn_SPI3 |
| #define APP_SPI_RX_DMA HPM_DMA_SRC_SPI3_RX |
| #define APP_SPI_SCLK_FREQ (20000000UL) |
| #define APP_SPI_TX_DMA HPM_DMA_SRC_SPI3_TX |
| #define BOARD_APP_ADC16_PMT_PWM HPM_PWM0 |
| #define BOARD_APP_ADC16_PMT_TRGM HPM_TRGM0 |
| #define BOARD_APP_ADC16_PMT_TRGM_IN HPM_TRGM0_INPUT_SRC_PWM0_CH8REF |
| #define BOARD_APP_ADC16_PMT_TRGM_OUT TRGM_TRGOCFG_ADCX_PTRGI0A |
| #define BOARD_APP_SPI_ADDR_LEN_IN_BYTES (1U) |
| #define BOARD_APP_SPI_DATA_LEN_IN_BITS (8U) |
| #define PWM_FREQUENCY (20000) |
| #define PWM_RELOAD (clock_get_frequency(clock_mot0) / PWM_FREQUENCY - 1) /*20K hz = 200 000 000/PWM_RELOAD */ |
| #define SPI_CS_ACTIVE_LEVEL (0U) |
| #define SPI_CS_GPIO_CTRL HPM_GPIO0 |
| #define SPI_CS_PIN IOC_PAD_PA00 |
| void board_init_spi_pins_test | ( | SPI_Type * | ptr | ) |
|
static |
| void hdma_spi_config | ( | void | ) |
| void isr_adc16 | ( | void | ) |
| int main | ( | void | ) |
| void preemption_handler | ( | void | ) |
| void prepare_spi_sent_data | ( | void | ) |
| hpm_stat_t process_pmt_data | ( | uint32_t * | buff, |
| int32_t | start_pos, | ||
| uint32_t | len | ||
| ) |
| dma_linked_descriptor_t adc_descriptors1[6] |
| spi_control_config_t control_config = {0} |
| uint32_t pmt_buff[ADC_SOC_PMT_MAX_DMA_BUFF_LEN_IN_4BYTES] |
| uint8_t sendbuff[2] |
| uint8_t seq_adc_channel[] = {BOARD_APP_ADC16_CH_1} |
| uint32_t seq_buff[(1024U)] |
| __IO uint8_t seq_full_complete_flag |
| uint8_t spi_buf[4] |
|
static |
| uint8_t test_buff3[2] |
| uint8_t test_buff4[2] |
| uint8_t trig_adc_channel[] = {BOARD_APP_ADC16_CH_1} |
| __IO uint8_t trig_complete_flag |