|
@@ -31,7 +31,7 @@ static eMBErrorCode RegInputCB(UCHAR *pucRegBuffer, USHORT usAddress, USHORT usN
|
|
|
return MB_ENOERR;
|
|
|
}
|
|
|
static eMBErrorCode RegHoldingCB(UCHAR *pucRegBuffer, USHORT usAddress,
|
|
|
- USHORT usNRegs, eMBRegisterMode eMode) {
|
|
|
+ USHORT usNRegs, eMBRegisterMode eMode) {
|
|
|
eMBErrorCode eStatus = MB_ENOERR;
|
|
|
USHORT iRegIndex;
|
|
|
USHORT *pusRegHoldingBuf;
|
|
@@ -39,7 +39,7 @@ static eMBErrorCode RegHoldingCB(UCHAR *pucRegBuffer, USHORT usAddress,
|
|
|
USHORT REG_HOLDING_NREGS;
|
|
|
USHORT usRegHoldStart;
|
|
|
pusRegHoldingBuf = usSRegHoldBuf;
|
|
|
- REG_HOLDING_START = S_REG_HOLDING_START;
|
|
|
+ REG_HOLDING_START =S_REG_HOLDING_START;
|
|
|
REG_HOLDING_NREGS = S_REG_HOLDING_NREGS;
|
|
|
usRegHoldStart = usSRegHoldStart;
|
|
|
|
|
@@ -63,15 +63,15 @@ static eMBErrorCode RegHoldingCB(UCHAR *pucRegBuffer, USHORT usAddress,
|
|
|
/* write current register values with new values from the protocol stack. */
|
|
|
case MB_REG_WRITE:
|
|
|
while (usNRegs > 0) {
|
|
|
- if(iRegIndex==0)
|
|
|
- {
|
|
|
- set_reg_value(FAN1_LEVEL_REG_ADDRESS,0);
|
|
|
- set_reg_value(FAN2_LEVEL_REG_ADDRESS,0);
|
|
|
- set_reg_value(FAN3_LEVEL_REG_ADDRESS,0);
|
|
|
- set_reg_value(FAN4_LEVEL_REG_ADDRESS,0);
|
|
|
- set_reg_value(FAN5_LEVEL_REG_ADDRESS,0);
|
|
|
-
|
|
|
- }
|
|
|
+// if(iRegIndex==0)
|
|
|
+// {
|
|
|
+// set_reg_value(FAN1_LEVEL_REG_ADDRESS,0);
|
|
|
+// set_reg_value(FAN2_LEVEL_REG_ADDRESS,0);
|
|
|
+// set_reg_value(FAN3_LEVEL_REG_ADDRESS,0);
|
|
|
+// set_reg_value(FAN4_LEVEL_REG_ADDRESS,0);
|
|
|
+// set_reg_value(FAN5_LEVEL_REG_ADDRESS,0);
|
|
|
+//
|
|
|
+// }
|
|
|
pusRegHoldingBuf[iRegIndex] = *pucRegBuffer++ << 8;
|
|
|
pusRegHoldingBuf[iRegIndex] |= *pucRegBuffer++;
|
|
|
iRegIndex++;
|
|
@@ -130,18 +130,30 @@ _Noreturn void reg_check_task(void *pv) {
|
|
|
uint16_t power=0, fan_level=0,dipnum=0;
|
|
|
for (;;) {
|
|
|
dipnum=read_dip5();//0 1 2 ,
|
|
|
- for(int i=0;i<dipnum;i++)
|
|
|
+ get_reg_value(POWER_REG_ADDRESS,&power);
|
|
|
+ if(power==0)
|
|
|
{
|
|
|
- HAL_TIM_PWM_Start(PWMComParam[i].htim, PWMComParam[i].timChannel);
|
|
|
- get_reg_value(FAN1_LEVEL_REG_ADDRESS+dipBuf[i],&fan_level);
|
|
|
- if(fan_level<=0)
|
|
|
+ for(int i=0;i<dipnum;i++)
|
|
|
{
|
|
|
fan_control(PWMComParam[i],0);
|
|
|
- }else{
|
|
|
- fan_control(PWMComParam[i],40+(fan_level/9));
|
|
|
+ HAL_TIM_PWM_Stop(PWMComParam[i].htim, PWMComParam[i].timChannel);
|
|
|
}
|
|
|
+ }else {
|
|
|
+ for(int i=0;i<dipnum;i++)
|
|
|
+ {
|
|
|
+ get_reg_value(FAN1_LEVEL_REG_ADDRESS+dipBuf[i],&fan_level);
|
|
|
+ if(fan_level<=0)
|
|
|
+ {
|
|
|
+ fan_control(PWMComParam[i],0);
|
|
|
+ HAL_TIM_PWM_Stop(PWMComParam[i].htim, PWMComParam[i].timChannel);
|
|
|
+ }else{
|
|
|
+ HAL_TIM_PWM_Start(PWMComParam[i].htim, PWMComParam[i].timChannel);
|
|
|
+ fan_control(PWMComParam[i],40+(fan_level/9));
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
HAL_IWDG_Refresh(&hiwdg);
|
|
|
osDelay(500);
|
|
|
}
|