Subversion Repositories HomeAutomation

Rev

Rev 1242 | Rev 1369 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1242 Rev 1243
Line 224... Line 224...
224
        rxMsg->Header.ModuleId == act_softPWM_ID)
224
        rxMsg->Header.ModuleId == act_softPWM_ID)
225
    {
225
    {
226
        switch (rxMsg->Header.Command)
226
        switch (rxMsg->Header.Command)
227
        {
227
        {
228
        case CAN_MODULE_CMD_PHYSICAL_PWM:
228
        case CAN_MODULE_CMD_PHYSICAL_PWM:
229
            if (rxMsg->Length >= 3)
229
            if (rxMsg->Length == 2)
230
            {
230
            {
231
                if ((((uint16_t)rxMsg->Data[1])<8) + rxMsg->Data[2] > maxTimer)
-
 
232
                {
-
 
233
                    rxMsg->Data[2] = maxTimer & 0x00ff;
-
 
234
                    rxMsg->Data[1] = (maxTimer>>8) & 0x00ff;
-
 
235
                }
-
 
236
                pwmValue[rxMsg->Data[0]] = (((uint16_t)rxMsg->Data[1])<<8) + rxMsg->Data[2];
231
                pwmValue[rxMsg->Data[0]] = ((uint32_t)rxMsg->Data[1]*maxTimer)/255;
237
                StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
232
                StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
238
                rxMsg->Length = 3;
233
                rxMsg->Length = 2;
239
                StdCan_Put(rxMsg);
234
                StdCan_Put(rxMsg);
240
            } else if (rxMsg->Length >= 1) {
235
            } else if (rxMsg->Length == 1) {
241
                rxMsg->Data[2] = pwmValue[rxMsg->Data[0]] & 0x00ff;
-
 
242
                rxMsg->Data[1] = (pwmValue[rxMsg->Data[0]]>>8) & 0x00ff;
236
                rxMsg->Data[1] = (pwmValue[rxMsg->Data[0]]*255/maxTimer);
243
                StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
237
                StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
244
                rxMsg->Length = 3;
238
                rxMsg->Length = 2;
245
                StdCan_Put(rxMsg);
239
                StdCan_Put(rxMsg);
246
            }
240
            }
247
            break;
241
            break;
248
        case CAN_MODULE_CMD_SOFTPWM_CONFIG:
242
        case CAN_MODULE_CMD_SOFTPWM_CONFIG:
249
            maxTimer = (((uint16_t)rxMsg->Data[0])<<8) + rxMsg->Data[1];
243
            maxTimer = (((uint16_t)rxMsg->Data[0])<<8) + rxMsg->Data[1];