@ -247,38 +247,38 @@ void Sensor_Communication_task(void *pvParameters)
process_sensor_data ( temp_data ) ;
process_sensor_data ( temp_data ) ;
RX_BUF_Transfer ( 0 , 23 ) ;
RX_BUF_Transfer ( 0 , 23 ) ;
}
}
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x01 )
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x01 & & CRC16_check ( RS485_RX_BUF_COPY , 16 ) = = 1 )
{
{
// batch update params in a stage
// batch update params in a stage
// total length: 18
// total length: 18
if ( CRC16_check ( RS485_RX_BUF_COPY , 16 ) = = 1 ) {
// if (CRC16_check(RS485_RX_BUF_COPY, 16) == 1) {
Batch_synchronization ( & n , RS485_RX_BUF_COPY ) ;
Batch_synchronization ( & n , RS485_RX_BUF_COPY ) ;
Array ( & now_stage , & hour , & min , & tem , & hum , & red , & blue , & white ) ; // update param correspond to current stage
Array ( & now_stage , & hour , & min , & tem , & hum , & red , & blue , & white ) ; // update param correspond to current stage
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 18 ) ;
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 18 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 18 , 22 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 18 , 22 ) ;
// RS485_1_Send_Data_1(RS485_DATA_TMP, 22);
// RS485_1_Send_Data_1(RS485_DATA_TMP, 22);
}
// }
RX_BUF_Transfer ( 0 , 18 ) ;
RX_BUF_Transfer ( 0 , 18 ) ;
}
}
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x03 )
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x03 & & CRC16_check ( RS485_RX_BUF_COPY , 7 ) = = 1 )
{
{
// update single environment param
// update single environment param
// total length: 9
// total length: 9
if ( CRC16_check ( RS485_RX_BUF_COPY , 7 ) = = 1 ) {
// if (CRC16_check(RS485_RX_BUF_COPY, 7) == 1) {
Analysis ( & n , & i , RS485_RX_BUF_COPY ) ;
Analysis ( & n , & i , RS485_RX_BUF_COPY ) ;
Array ( & now_stage , & hour , & min , & tem , & hum , & red , & blue , & white ) ; // update param correspond to current stage
Array ( & now_stage , & hour , & min , & tem , & hum , & red , & blue , & white ) ; // update param correspond to current stage
Write_Init ( ) ;
Write_Init ( ) ;
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 9 ) ;
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 9 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 9 , 13 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 9 , 13 ) ;
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 13 ) ;
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 13 ) ;
}
// }
RX_BUF_Transfer ( 0 , 9 ) ;
RX_BUF_Transfer ( 0 , 9 ) ;
}
}
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x04 )
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x04 & & CRC16_check ( RS485_RX_BUF_COPY , 4 ) = = 1 )
{
{
// change running stage
// change running stage
// total length: 6
// total length: 6
if ( CRC16_check ( RS485_RX_BUF_COPY , 4 ) = = 1 ) {
// if (CRC16_check(RS485_RX_BUF_COPY, 4) == 1) {
int target_stage = RS485_RX_BUF_COPY [ 3 ] ;
int target_stage = RS485_RX_BUF_COPY [ 3 ] ;
RTC_synchronization_ins ( 2023 , 9 , 1 , 0 , 00 , 00 ) ;
RTC_synchronization_ins ( 2023 , 9 , 1 , 0 , 00 , 00 ) ;
now_stage = target_stage ;
now_stage = target_stage ;
@ -289,14 +289,14 @@ void Sensor_Communication_task(void *pvParameters)
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 10 ) ;
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 10 ) ;
delay_ms ( 10 ) ;
delay_ms ( 10 ) ;
RS485_1_Send_Data_2 ( ) ; // ÉÏ´«²ÎÊý
RS485_1_Send_Data_2 ( ) ; // ÉÏ´«²ÎÊý
}
// }
RX_BUF_Transfer ( 0 , 6 ) ;
RX_BUF_Transfer ( 0 , 6 ) ;
}
}
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x05 )
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB6 & & RS485_RX_BUF_COPY [ 2 ] = = 0x05 & & CRC16_check ( RS485_RX_BUF_COPY , 4 ) = = 1 )
{
{
// change pid params
// change pid params
// total length: 8
// total length: 8
if ( CRC16_check ( RS485_RX_BUF_COPY , 6 ) = = 1 ) {
// if (CRC16_check(RS485_RX_BUF_COPY, 4) == 1) {
int param_index = RS485_RX_BUF_COPY [ 3 ] ;
int param_index = RS485_RX_BUF_COPY [ 3 ] ;
switch ( param_index ) {
switch ( param_index ) {
case 0x01 :
case 0x01 :
@ -319,7 +319,7 @@ void Sensor_Communication_task(void *pvParameters)
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 8 ) ;
bufcut_Init ( RS485_DATA_TMP , RS485_RX_BUF_COPY , 0 , 8 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 8 , 12 ) ;
bufcut_Init ( RS485_DATA_TMP + 8 , RS485_SUFFIX , 8 , 12 ) ;
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 12 ) ;
RS485_1_Send_Data_1 ( RS485_DATA_TMP , 12 ) ;
}
// }
RX_BUF_Transfer ( 0 , 8 ) ;
RX_BUF_Transfer ( 0 , 8 ) ;
}
}
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB1 & & RS485_RX_BUF_COPY [ 2 ] = = 0x11 & & RS485_RX_BUF_COPY [ 15 ] = = 0xFF & & RS485_RX_BUF [ 16 ] = = 0xFF )
else if ( RS485_RX_BUF_COPY [ 0 ] = = 0xEE & & RS485_RX_BUF_COPY [ 1 ] = = 0xB1 & & RS485_RX_BUF_COPY [ 2 ] = = 0x11 & & RS485_RX_BUF_COPY [ 15 ] = = 0xFF & & RS485_RX_BUF [ 16 ] = = 0xFF )
@ -358,8 +358,6 @@ void Sensor_Communication_task(void *pvParameters)
if ( red < = 1000 & & blue < = 1000 )
if ( red < = 1000 & & blue < = 1000 )
{
{
@ -415,13 +413,6 @@ void process_sensor_data(u8 *data) {
PID_Calc ( ) ;
PID_Calc ( ) ;
// send sign to 485
// send sign to 485
// out: 0-200
// out: 0-200
// num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
// TIM_SetCompare3(TIM3,num);
// TIM_SetCompare3(TIM3,0.845*num);
// printf("%d\r\n",num);
// 0-200对应0-100%, 如果pid.out=50,占空比就是25%, //num=50*400/200=100, 100/400=25%
// printf("%d ,%d ,%d ,%d ,%f ,%f ,%f ,%f ,%f ,%f ,%f ,%.3f\r\n",T,H,C,num,(pid.set_tem*10),pid.Kp,ki,kd,pid.Pout,pid.Iout,pid.Dout,num/399.0);
current_T = T ;
current_T = T ;
}
}
}
}