加入注入组中断采集
This commit is contained in:
parent
bbbe09ff9f
commit
28f07b1183
|
@ -149,11 +149,13 @@ int main(void)
|
||||||
rt_thread_mdelay(250);
|
rt_thread_mdelay(250);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
voltage = ptz_Voltage_collect_adc1_task();
|
// voltage = ptz_Voltage_collect_adc1_task();
|
||||||
rt_thread_mdelay(500);
|
// rt_thread_mdelay(500);
|
||||||
|
|
||||||
current = ptz_Current_collect_adc1_task();
|
// current = ptz_Current_collect_adc1_task();
|
||||||
rt_thread_mdelay(500);
|
// rt_thread_mdelay(500);
|
||||||
|
|
||||||
|
adc_software_trigger_enable(ADCX, SEQUENCE_CHANNEL);// 软件触发使能 后续接读取
|
||||||
|
|
||||||
//测试mb铁电读写
|
//测试mb铁电读写
|
||||||
read_mb_id((uint8_t*)&tiedian_id);//读取铁电ID
|
read_mb_id((uint8_t*)&tiedian_id);//读取铁电ID
|
||||||
|
@ -181,27 +183,39 @@ int main(void)
|
||||||
void DMA1_Channel0_IRQHandler(void)
|
void DMA1_Channel0_IRQHandler(void)
|
||||||
{
|
{
|
||||||
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FTF)) {
|
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FTF)) {
|
||||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FTF);
|
|
||||||
ttest.status = 1;
|
ttest.status = 1;
|
||||||
|
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FTF);
|
||||||
// 处理传输完成
|
// 处理传输完成
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_HTF)) {
|
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_HTF)) {
|
||||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_HTF);
|
|
||||||
ttest.status = 2;
|
ttest.status = 2;
|
||||||
|
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_HTF);
|
||||||
// 处理半传输完成(如果使能了)
|
// 处理半传输完成(如果使能了)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FEE)) {
|
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FEE)) {
|
||||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FEE);
|
|
||||||
ttest.status = 3;
|
ttest.status = 3;
|
||||||
|
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FEE);
|
||||||
// 处理错误
|
// 处理错误
|
||||||
}
|
}
|
||||||
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE)) {
|
if(dma_interrupt_flag_get(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE)) {
|
||||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE);
|
|
||||||
ttest.status = 6;
|
ttest.status = 6;
|
||||||
|
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE);
|
||||||
// 处理错误
|
// 处理错误
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void ADC_IRQHandler()
|
||||||
|
{
|
||||||
|
if(adc_interrupt_flag_get(ADCX, ADC_INT_FLAG_EOC)) {
|
||||||
|
voltage = adc_inserted_data_read(ADCX, ADC_INSERTED_CHANNEL_0); // 读取注入组数据寄存器
|
||||||
|
voltage = voltage / 4095.0 * 3.3;
|
||||||
|
current = adc_inserted_data_read(ADCX, ADC_INSERTED_CHANNEL_1); // 读取注入组数据寄存器
|
||||||
|
current = ((current / 4095.0 * 3.3) - 3.3 / 2) / 0.132;
|
||||||
|
adc_interrupt_flag_clear(ADCX, ADC_INT_FLAG_EOC);
|
||||||
|
// 处理传输完成
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,7 @@ void adc_init(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
adc_config();
|
adc_config();
|
||||||
|
adc_interrupt_int();
|
||||||
#ifdef DMAX
|
#ifdef DMAX
|
||||||
ctl = DMA_CHCTL(DMAX, USER_DMA_ADC_CHANNEL);
|
ctl = DMA_CHCTL(DMAX, USER_DMA_ADC_CHANNEL);
|
||||||
if (ctl == 33762576)
|
if (ctl == 33762576)
|
||||||
|
@ -171,6 +171,13 @@ void adc_config(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void adc_interrupt_int(void)
|
||||||
|
{
|
||||||
|
adc_interrupt_enable (ADCX, ADC_INT_EOC);
|
||||||
|
nvic_irq_enable (ADCX_IRQn, ADCX_PRIORITY_PRE, ADCX_PRIORITY_SUB);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
// adc电压采集
|
// adc电压采集
|
||||||
|
|
|
@ -39,7 +39,7 @@ adc模式配置参数
|
||||||
// #define DMAX DMA1
|
// #define DMAX DMA1
|
||||||
|
|
||||||
#ifdef DMAX
|
#ifdef DMAX
|
||||||
#define DMA_STATUS DISABLE // 是否开启dma
|
#define DMA_STATUS DISABLE // 是否开启dma *后续把这个定义改到#ifdef里*
|
||||||
#define USER_DMA_ADC_CHANNEL DMA_CH3 //DMA通道:ADC0:DMA_CH0 DMA_CH4
|
#define USER_DMA_ADC_CHANNEL DMA_CH3 //DMA通道:ADC0:DMA_CH0 DMA_CH4
|
||||||
// ADC1:DMA_CH2 DMA_CH3
|
// ADC1:DMA_CH2 DMA_CH3
|
||||||
// ADC2:DMA_CH0 DMA_CH3
|
// ADC2:DMA_CH0 DMA_CH3
|
||||||
|
@ -56,16 +56,24 @@ adc模式配置参数
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ADCX_IRQn ADC_IRQn
|
||||||
|
#define ADCX_PRIORITY_PRE 2U //抢占优先级
|
||||||
|
#define ADCX_PRIORITY_SUB 0U //子优先级
|
||||||
|
|
||||||
|
|
||||||
void adc_init(void);
|
void adc_init(void);
|
||||||
void adc_rcu_config(void);
|
void adc_rcu_config(void);
|
||||||
void adc_gpio_config(void);
|
void adc_gpio_config(void);
|
||||||
void adc_dma_config(void);
|
|
||||||
void adc_config(void);
|
void adc_config(void);
|
||||||
|
void adc_interrupt_int(void);
|
||||||
float ptz_Voltage_collect_adc1_task();
|
float ptz_Voltage_collect_adc1_task();
|
||||||
float ptz_Current_collect_adc1_task();
|
float ptz_Current_collect_adc1_task();
|
||||||
float ptz_temperature_collect_tmp75_task();
|
float ptz_temperature_collect_tmp75_task();
|
||||||
__weak void DMA1_Channel0_IRQHandler(void);
|
|
||||||
|
|
||||||
|
#ifdef DMAX
|
||||||
|
void adc_dma_config(void);
|
||||||
|
__weak void DMA1_Channel0_IRQHandler(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue