servoMotor/APP/Device/device_Other/device_adc_collect.c

575 lines
15 KiB
C
Raw Normal View History

2025-10-10 07:46:35 +00:00
#include "device_adc_collect.h"
// ADC_Phase_current H_ADC_Collect;
// ADC_Phase_current V_ADC_Collect;
2025-10-10 07:46:35 +00:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
void ptz_send_voltage(char dev)
{
unsigned short int vol = 0;
unsigned char VData[7]= {0xff,0x00,0x00,0x00,0x00,0x00,0x00};
vol = ( unsigned short int)(g_ptz.Voltage * 100 + 0.5);
VData[1] = g_ptz.address;
VData[2] = 0xcd;
VData[3] = (unsigned char)(vol >> 8);
VData[4] = (unsigned char)(vol & 0x00ff);
VData[6] = MotorCalPelcoDSUM(VData,sizeof(VData));
ptz_send_data(dev, VData, sizeof(VData));
//<2F><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ptz_send_current(char dev)
{
unsigned short int current = 0;
unsigned char IData[7]= {0xff,0x00,0x00,0x00,0x00,0x00,0x00};
current = (unsigned short int)(g_ptz.electric_current * 100 + 0.5);
IData[1] = g_ptz.address;
IData[2] = 0xc8;
IData[3] = (unsigned char)(current >> 8);
IData[4] = (unsigned char)(current & 0x00ff);
IData[6] = MotorCalPelcoDSUM(IData,sizeof(IData));
ptz_send_data(dev, IData, sizeof(IData));
}
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>
// void ptz_send_temperature(char dev)
// {
// unsigned short int tem = 0;
// unsigned char TData[7]= {0xff,0x00,0x00,0x00,0x00,0x00,0x00};
// tem = (unsigned short int)(g_ptz.temperature * 100 + 0.5);
// TData[1] = g_ptz.address;
// TData[2] = 0xd6;
// TData[3] = (unsigned char)(tem >> 8);
// TData[4] = (unsigned char)(tem & 0x00ff);
// TData[6] = MotorCalPelcoDSUM(TData,sizeof(TData));
// ptz_send_data(dev,TData,sizeof(TData));
// }
// //<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
// void ptz_send_bridge_temperature(char dev)
// {
// unsigned short int tem = 0;
// unsigned char TData[7]= {0xff,0x00,0x00,0x00,0x00,0x00,0x00};
// //<2F><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// tem = (unsigned short int)(g_ptz.H_boad_temp * 100 + 0.5);
// TData[1] = g_ptz.address;
// TData[2] = 0xd7;
// TData[3] = PTZ_HORI;
// TData[4] = (unsigned char)(tem >> 8);
// TData[5] = (unsigned char)(tem & 0x00ff);
// TData[6] = MotorCalPelcoDSUM(TData,sizeof(TData));
// ptz_send_data(dev,TData,sizeof(TData));
// OSTimeDlyHMSM(0u, 0u, 0u, 5u);
// //<2F><><EFBFBD>ʹ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// tem = (unsigned short int)(g_ptz.V_boad_temp * 100 + 0.5);
// TData[1] = g_ptz.address;
// TData[2] = 0xd7;
// TData[3] = PTZ_VERT;
// TData[4] = (unsigned char)(tem >> 8);
// TData[5] = (unsigned char)(tem & 0x00ff);
// TData[6] = MotorCalPelcoDSUM(TData,sizeof(TData));
// ptz_send_data(dev,TData,sizeof(TData));
// }
// static float current_caculate(uint16_t I)
// {
// float i;
// i = ((float)I/4096.0*3.3)/0.5;
// return i;
// }
// /*!
// \brief ADC2<43><32>ʼ<EFBFBD><CABC>ƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
// \param[in] none
// \param[out] none
// \retval none
// \note LH @2022.07.21
// */
// static void ADC2_Init()
// {
// /* ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PC0-U<><55>PA0-V<><56>PA3-W ---ADC2*/
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// rcu_periph_clock_enable(RCU_GPIOA);
// rcu_periph_clock_enable(RCU_GPIOC);
// gpio_mode_set(GPIOC,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_0);
// gpio_mode_set(GPIOA,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_0);
// gpio_mode_set(GPIOA,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_3);
// rcu_periph_clock_enable(RCU_ADC2);
// //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>20<32><30>Ƶ=6MHZ
// adc_clock_config(ADC_ADCCK_PCLK2_DIV4);
// /***********************************************/
// //<2F><><EFBFBD>ʽ ADC_INSERTED_CHANNEL
// adc_data_alignment_config(ADC2,ADC_DATAALIGN_RIGHT);
// //ɨ<><C9A8>ģʽ
// adc_special_function_config(ADC2,ADC_SCAN_MODE,ENABLE);
// //<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
// adc_external_trigger_config(ADC2,ADC_INSERTED_CHANNEL,DISABLE);
// //<2F>ɼ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
// adc_channel_length_config(ADC2,ADC_INSERTED_CHANNEL,3);
// //ͨ<><CDA8>ע<EFBFBD><D7A2>˳<EFBFBD><CBB3>
// adc_inserted_channel_config(ADC2,0,ADC_CHANNEL_10,ADC_SAMPLETIME_480);//u
// adc_inserted_channel_config(ADC2,1,ADC_CHANNEL_0,ADC_SAMPLETIME_480);//v
// adc_inserted_channel_config(ADC2,2,ADC_CHANNEL_3,ADC_SAMPLETIME_480);//w
// adc_enable(ADC2);
// adc_calibration_enable(ADC2);
// }
// /*!
// \brief ADC0<43><30>ʼ<EFBFBD><CABC>,<2C><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
// \param[in] none
// \param[out] none
// \retval none
// \note LH @2022.07.21
// */
// static void ADC0_Init()
// {
// /* <20><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PA4-U<><55>PA5-V<><56>PA6-W ---ADC0*/
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// rcu_periph_clock_enable(RCU_GPIOA);
// gpio_mode_set(GPIOA,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_4);
// gpio_mode_set(GPIOA,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_5);
// gpio_mode_set(GPIOA,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_6);
// rcu_periph_clock_enable(RCU_ADC0);
// //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>20<32><30>Ƶ=6MHZ
// adc_clock_config(ADC_ADCCK_PCLK2_DIV4);
// /***********************************************/
// //<2F><><EFBFBD>ʽ ADC_INSERTED_CHANNEL
// adc_data_alignment_config(ADC0,ADC_DATAALIGN_RIGHT);
// //ɨ<><C9A8>ģʽ
// adc_special_function_config(ADC0,ADC_SCAN_MODE,ENABLE);
// //<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
// adc_external_trigger_config(ADC0,ADC_INSERTED_CHANNEL,DISABLE);
// //<2F>ɼ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
// adc_channel_length_config(ADC0,ADC_INSERTED_CHANNEL,3);
// //ͨ<><CDA8>ע<EFBFBD><D7A2>˳<EFBFBD><CBB3>
// adc_inserted_channel_config(ADC0,0,ADC_CHANNEL_4,ADC_SAMPLETIME_480);//u
// adc_inserted_channel_config(ADC0,1,ADC_CHANNEL_5,ADC_SAMPLETIME_480);//v
// adc_inserted_channel_config(ADC0,2,ADC_CHANNEL_6,ADC_SAMPLETIME_480);//w
// adc_enable(ADC0);
// adc_calibration_enable(ADC0);
// }
2025-10-10 07:46:35 +00:00
/* H_NTC-PB0 ,V_NTC-PB1 ----ADC1*/
/*!
\brief ADC1<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ѹ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,NTC<EFBFBD>Ȳɼ<EFBFBD>
\param[in] none
\param[out] none
\retval none
\note LH @2022.07.21
*/
// static void ADC1_Init()
// {
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
// rcu_periph_clock_enable(RCU_GPIOC);
// // rcu_periph_clock_enable(RCU_GPIOB);
// //<2F><><EFBFBD>Ÿ<EFBFBD><C5B8>ã<EFBFBD>PC2<43><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹADC1-CH12<31><32>PC3<43><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ADC1-CH13
// gpio_mode_set(GPIOC,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_2);
// gpio_mode_set(GPIOC,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_3);
// // /* H_NTC-PB0 ,V_NTC-PB1 */
// // gpio_mode_set(GPIOB,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_0);
// // gpio_mode_set(GPIOB,GPIO_MODE_ANALOG,GPIO_PUPD_NONE,GPIO_PIN_1);
// rcu_periph_clock_enable(RCU_ADC1);
// //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>20<32><30>Ƶ=6MHZ
// adc_clock_config(ADC_ADCCK_PCLK2_DIV4);
// /***********************************************/
// //<2F><><EFBFBD>ʽ ADC_INSERTED_CHANNEL
// adc_data_alignment_config(ADC1,ADC_DATAALIGN_RIGHT);
// //ɨ<><C9A8>ģʽ
// adc_special_function_config(ADC1,ADC_SCAN_MODE,ENABLE);
// //<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
// adc_external_trigger_config(ADC1,ADC_INSERTED_CHANNEL,DISABLE);
// //<2F>ɼ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
// adc_channel_length_config(ADC1,ADC_INSERTED_CHANNEL,2);
// //ͨ<><CDA8>ע<EFBFBD><D7A2>˳<EFBFBD><CBB3>
// adc_inserted_channel_config(ADC1,0,ADC_CHANNEL_13,ADC_SAMPLETIME_480);//<2F><><EFBFBD><EFBFBD>
// adc_inserted_channel_config(ADC1,1,ADC_CHANNEL_12,ADC_SAMPLETIME_480);//<2F><>ѹ
// // adc_inserted_channel_config(ADC1,2,ADC_CHANNEL_8,ADC_SAMPLETIME_480);//H_NTC-PB0
// // adc_inserted_channel_config(ADC1,3,ADC_CHANNEL_9,ADC_SAMPLETIME_480);//V_NTC-PB1
// adc_enable(ADC1);
// adc_calibration_enable(ADC1);
// }
// /*!
// \brief ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
// \param[in] none
// \param[out] none
// \retval none
// \note LH @2022.07.19
// */
// void H_ADC2_Phase_current()
// {
// adc_software_trigger_enable(ADC2,ADC_INSERTED_CHANNEL);
// asm ("nop");
// asm ("nop");
// H_ADC_Collect.Phase_curr_U = current_caculate(ADC_IDATA0(ADC2));//U
// asm ("nop");
// H_ADC_Collect.Phase_curr_V = current_caculate(ADC_IDATA1(ADC2));//V
// asm ("nop");
// H_ADC_Collect.Phase_curr_W = current_caculate(ADC_IDATA2(ADC2));//W
// }
// /*!
// \brief <20><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
// \param[in] none
// \param[out] none
// \retval none
// \note LH @2022.07.19
// */
// void V_ADC0_Phase_current()
// {
// // int Ia,Ib,Ic;
// adc_software_trigger_enable(ADC0,ADC_INSERTED_CHANNEL);
// asm ("nop");
// asm ("nop");
// // Ia = ADC_IDATA0(ADC0);//U
// V_ADC_Collect.Phase_curr_U = current_caculate(ADC_IDATA0(ADC0));//U
// asm ("nop");
// // Ib = ADC_IDATA1(ADC0);//V
// V_ADC_Collect.Phase_curr_V = current_caculate(ADC_IDATA1(ADC0));//V
// asm ("nop");
// // Ic = ADC_IDATA2(ADC0);//W
// V_ADC_Collect.Phase_curr_W = current_caculate(ADC_IDATA2(ADC0));//W
// }
// #define R_constant 10.0 //ǧŷķ<C5B7><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ֵ
// #define R_25 10000.0//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B3A3><EFBFBD>µĵ<C2B5><C4B5><EFBFBD>ֵ
// #define Ntc_B 3435.0//<2F><><EFBFBD><EFBFBD>B
// #define Kelvin_temp 273.15+25//<2F><><EFBFBD>¡<EFBFBD><C2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// //NTC<54><43><EFBFBD><EFBFBD>
// static float Ntc_current(uint16_t data)
// {
// static float curr;
// curr = ((float)data / 4096.0 * 3.3)/R_constant;
// return curr;
// }
// //NTC<54><43>ѹ
// static float Ntc_voltage(uint16_t data)
// {
// static float voltage;
// voltage = 3.3 - ((float)data / 4096.0 * 3.3);
// return voltage;
// }
// //NTC<54><43><EFBFBD><EFBFBD>
// static float Ntc_resis(uint16_t data)
// {
// static float resis,curr,voltage;
// curr = Ntc_current(data);
// voltage = Ntc_voltage(data);
// resis = voltage / curr * 1000.0;//<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ<EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>1000<30><30>
// return resis;
// }
// //NTC<54>¶ȼ<C2B6><C8BC><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// static float Ntc_temp(uint16_t adc_data)
// {
// float R_ntc;//ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>
// double temp,K,j,l,m;//ʵ<><CAB5><EFBFBD><EFBFBD>
// R_ntc = Ntc_resis(adc_data);
// K = R_ntc/10000.0;
// j = log(K);//log eΪ<65><CEAA><EFBFBD><EFBFBD>
// l = j/3435.0;
// m = 1.0 /298.15;
// temp = 1/(l+m);
// // temp = 1/(j / Ntc_B + 1/Kelvin_temp);
// return (float)temp;
// }
// /*!
// \brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// \param[in] none
// \param[out] none
// \retval none
// \note LH @2022.07.19
// */
// static void Ntc_value()//ADC1
// {
// float H_temp_f,V_temp_f;//<2F><>ʼ<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// short int H_temp,V_temp;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// adc_software_trigger_enable(ADC1,ADC_INSERTED_CHANNEL);
// asm ("nop");
// asm ("nop");
// H_temp_f = Ntc_temp(ADC_IDATA2(ADC1));
// asm ("nop");
// asm ("nop");
// V_temp_f = Ntc_temp(ADC_IDATA3(ADC1));
// H_temp = (short int)(H_temp_f - 273.15 + 0.5);
// V_temp = (short int)(V_temp_f - 273.15 + 0.5);
// g_ptz.H_boad_temp = (float)H_temp;//<2F><><EFBFBD>¶Ȳ<C2B6><C8B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ӻش<D3BB><D8B4><EFBFBD><EFBFBD><EFBFBD>ѯ
// g_ptz.V_boad_temp = (float)V_temp;
// }
// //<2F><>ѹ<EFBFBD>ɼ<EFBFBD>
// static void ptz_Voltage_collect_adc1_task()
// {
// static float adc1_v[5];
// static unsigned char adc1_num;
// int j,k;
// float tem;
// float curadc1;
// uint16_t value_V;
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
// adc_software_trigger_enable(ADC1,ADC_INSERTED_CHANNEL);
// value_V = ADC_IDATA1(ADC1);
// // adc1_v[adc1_num] = (float)value_V / 4096.0 * 11 *3.38;
// adc1_v[adc1_num] = (float)value_V / 4096.0 * 12.55 *3.38;
// adc1_num++;
// if(adc1_num >= 5)
// {
// adc1_num = 0;
// for(j = 0; j < 5-1; j++)//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// for(k = 0; k < 5-j-1; k++)
// {
// if(adc1_v[k] > adc1_v[k+1])
// {
// tem = adc1_v[k];
// adc1_v[k] = adc1_v[k+1];
// adc1_v[k+1] = tem;
// }
// }
// }
// for(uint8_t i = 1; i < 5 - 1; i++)
// {
// curadc1 = curadc1 + adc1_v[i];
// }
// curadc1 = curadc1 /((float)(5 - 2));//ȥ<><C8A5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Сֵ<D0A1><D6B5>ƽ<EFBFBD><C6BD>ֵ
// g_ptz.Voltage = curadc1;
// memset(adc1_v,0,sizeof(adc1_v));
// // pdebug(DEBUG_LEVEL_INFO,"get ptz Voltage: %.3fV",g_ptz.Voltage);
// }
// }
// //<2F><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>
// static void ptz_Current_collect_adc1_task()
// {
// static float adc1_i[5];
// static unsigned char adc0_num;
// int j,k;
// float tem;
// float curadc0;
// uint16_t value_I;
// adc_software_trigger_enable(ADC1,ADC_INSERTED_CHANNEL);
// value_I = ADC_IDATA0(ADC1);
// adc1_i[adc0_num] = ((float)value_I / 4096.0 * 3.38) * 10;//(float)value_I;//
// adc0_num ++;
// if(adc0_num >= 5)
// {
// adc0_num = 0;
// for(j = 0; j < 5-1; j++)//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// for(k = 0; k < 5-j-1; k++)
// {
// if(adc1_i[k] > adc1_i[k+1])
// {
// tem = adc1_i[k];
// adc1_i[k] = adc1_i[k+1];
// adc1_i[k+1] = tem;
// }
// }
// }
// for(uint8_t i = 1; i < 5 - 1; i++)
// {
// curadc0 = curadc0 + adc1_i[i];
// }
// curadc0 = curadc0 /((float)(5 - 2));//ȥ<><C8A5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Сֵ<D0A1><D6B5>ƽ<EFBFBD><C6BD>ֵ
// g_ptz.electric_current = curadc0;
// memset(adc1_i,0,sizeof(adc1_i));
// // pdebug(DEBUG_LEVEL_INFO,"get ptz Electric_Current: %.3fA",g_ptz.electric_current);
// }
// }
// //<2F>¶Ȳɼ<C8B2>
// static void ptz_temperature_collect_tmp75_task()
// {
// static float tmp75[5];
// static unsigned char tmp75_num;
// float curtmp75;
// float tem;
// int j,k;
// tmp75[tmp75_num] = tmp75_read_temp();
// tmp75_num ++;
// if(tmp75_num >= 5)
// {
// tmp75_num = 0;
// for(j = 0; j < 5-1; j++)//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// {
// for(k = 0; k < 5-j-1; k++)
// {
// if(tmp75[k] > tmp75[k+1])
// {
// tem = tmp75[k];
// tmp75[k] = tmp75[k+1];
// tmp75[k+1] = tem;
// }
// }
// }
// for(uint8_t i = 1; i < 5 - 1; i++)
// {
// curtmp75 = curtmp75 + tmp75[i];//ȥ<><C8A5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Сֵ
// }
// curtmp75 = curtmp75 / ((float)(5 - 2));
// g_ptz.temperature = curtmp75;
// memset(tmp75,0,sizeof(tmp75));
// // pdebug(DEBUG_LEVEL_INFO,"get ptz Temperature: %.3f<EFBFBD><EFBFBD>",g_ptz.temperature);
// }
// }
2025-10-10 07:46:35 +00:00
//int counter;
//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
static char ptz_data_collect_task()
{
int i=0,j=0;
while(1)
{
if(g_ptz.hori_start_stop_set == PTZ_HORI_START)
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
// H_ADC2_Phase_current();
2025-10-10 07:46:35 +00:00
}
if(g_ptz.vert_start_stop_set == PTZ_VERT_START)
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
// V_ADC0_Phase_current();
2025-10-10 07:46:35 +00:00
}
if(j >= 100)
{
j=0;
//<2F><>̨<EFBFBD><CCA8><EFBFBD>Լ<EFBFBD><D4BC>رգ<D8B1><D5A3>򿪲ɼ<F2BFAAB2><C9BC><EFBFBD><EFBFBD><EFBFBD>
#ifndef PTZ_NO_SELF_CHECK
2025-10-10 07:46:35 +00:00
ptz_Voltage_collect_adc1_task();
#endif
OSTimeDlyHMSM(0u, 0u, 0u, 2u);
g_ptz.electric_current = ptz_Current_collect_adc1_task();
// ptz_Current_collect_adc1_task();
// OSTimeDlyHMSM(0u, 0u, 0u, 50u);
2025-10-10 07:46:35 +00:00
}
if(i >= 3000)
{//<2F><><EFBFBD><EFBFBD><EFBFBD>¶Ȳɼ<C8B2>Ƶ<EFBFBD><C6B5>
g_ptz.temperature = ptz_temperature_collect_tmp75_task();
2025-10-10 07:46:35 +00:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>¶Ȳɼ<C8B2>
// Ntc_value();
2025-10-10 07:46:35 +00:00
i=0;
}
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
i++;
j++;
}
}
static OS_STK task_data_collect_stk[TASK_PTZ_DATA_COLLECT_STK_SIZE];
static void creat_task_data_collect(void)
{
CPU_INT08U task_err;
2025-10-10 07:46:35 +00:00
CPU_INT08U name_err;
task_err = OSTaskCreateExt((void (*)(void *)) ptz_data_collect_task,
(void *) 0,
(OS_STK *)&task_data_collect_stk[TASK_PTZ_DATA_COLLECT_STK_SIZE - 1],
(INT8U ) TASK_PTZ_DATA_COLLECT_PRIO,
(INT16U ) TASK_PTZ_DATA_COLLECT_PRIO,
(OS_STK *)&task_data_collect_stk[0],
(INT32U ) TASK_PTZ_DATA_COLLECT_STK_SIZE,
(void *) 0,
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
#if (OS_TASK_NAME_EN > 0)
OSTaskNameSet(TASK_PTZ_DATA_COLLECT_PRIO, "ptz_data_collect_task", &name_err);
#endif
if ((task_err == OS_ERR_NONE) && (name_err == OS_ERR_NONE)) {
pdebug(DEBUG_LEVEL_INFO,"create ptz_data_collect_task success\r\n");
} else {
pdebug(DEBUG_LEVEL_FATAL,"create ptz_data_collect_task failed\r\n");
}
}
void init_data_collect_module(void)
{
//#ifndef PTZ_NO_SELF_CHECK
// ADC1_Init();//AD<41>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
i2c_init();
adc_init();
2025-10-10 07:46:35 +00:00
//#endif
// ADC2_Init();//AD<41>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
// ADC0_Init();//AD<41>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
2025-10-10 07:46:35 +00:00
// temp75_gpio_init();//<2F>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
2025-10-10 07:46:35 +00:00
creat_task_data_collect();
}