加入注入组中断采集
This commit is contained in:
parent
bbbe09ff9f
commit
28f07b1183
|
@ -149,11 +149,13 @@ int main(void)
|
|||
rt_thread_mdelay(250);
|
||||
#endif
|
||||
|
||||
voltage = ptz_Voltage_collect_adc1_task();
|
||||
rt_thread_mdelay(500);
|
||||
// voltage = ptz_Voltage_collect_adc1_task();
|
||||
// rt_thread_mdelay(500);
|
||||
|
||||
current = ptz_Current_collect_adc1_task();
|
||||
rt_thread_mdelay(500);
|
||||
// current = ptz_Current_collect_adc1_task();
|
||||
// rt_thread_mdelay(500);
|
||||
|
||||
adc_software_trigger_enable(ADCX, SEQUENCE_CHANNEL);// 软件触发使能 后续接读取
|
||||
|
||||
//测试mb铁电读写
|
||||
read_mb_id((uint8_t*)&tiedian_id);//读取铁电ID
|
||||
|
@ -181,27 +183,39 @@ int main(void)
|
|||
void DMA1_Channel0_IRQHandler(void)
|
||||
{
|
||||
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;
|
||||
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)) {
|
||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_HTF);
|
||||
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)) {
|
||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_FEE);
|
||||
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)) {
|
||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE);
|
||||
ttest.status = 6;
|
||||
dma_interrupt_flag_clear(DMA1, USER_DMA_ADC_CHANNEL, DMA_INT_FLAG_TAE);
|
||||
// 处理错误
|
||||
}
|
||||
}
|
||||
|
||||
#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
|
||||
|
||||
adc_config();
|
||||
|
||||
adc_interrupt_int();
|
||||
#ifdef DMAX
|
||||
ctl = DMA_CHCTL(DMAX, USER_DMA_ADC_CHANNEL);
|
||||
if (ctl == 33762576)
|
||||
|
@ -171,6 +171,13 @@ void adc_config(void)
|
|||
#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电压采集
|
||||
|
|
|
@ -39,7 +39,7 @@ adc模式配置参数
|
|||
// #define DMAX DMA1
|
||||
|
||||
#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
|
||||
// ADC1:DMA_CH2 DMA_CH3
|
||||
// ADC2:DMA_CH0 DMA_CH3
|
||||
|
@ -56,16 +56,24 @@ adc模式配置参数
|
|||
|
||||
#endif
|
||||
|
||||
#define ADCX_IRQn ADC_IRQn
|
||||
#define ADCX_PRIORITY_PRE 2U //抢占优先级
|
||||
#define ADCX_PRIORITY_SUB 0U //子优先级
|
||||
|
||||
|
||||
void adc_init(void);
|
||||
void adc_rcu_config(void);
|
||||
void adc_gpio_config(void);
|
||||
void adc_dma_config(void);
|
||||
void adc_config(void);
|
||||
void adc_interrupt_int(void);
|
||||
float ptz_Voltage_collect_adc1_task();
|
||||
float ptz_Current_collect_adc1_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
|
||||
|
||||
|
|
Loading…
Reference in New Issue