Subversion Repositories HomeAutomation

Rev

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

Rev 1497 Rev 1566
Line 145... Line 145...
145
    }
145
    }
146
    if (pwmValue[1]>0)
146
    if (pwmValue[1]>0)
147
    {
147
    {
148
        TCCR1A|=(act_hwPWM_CH2_COM<<COM1A0);
148
        TCCR1A|=(act_hwPWM_CH2_COM<<COM1A0);
149
    }
149
    }
-
 
150
    ICR1 = 0xffff;
150
    #endif
151
    #endif
151
 
152
 
152
    /* enable timer 1 */
153
    /* enable timer 1 */
153
    #if act_hwPWM_CH1_COM>0
154
    #if act_hwPWM_CH1_COM>0
154
    TCCR1B|=(act_hwPWM_CH1_CS<<CS10);
155
    TCCR1B|=(act_hwPWM_CH1_CS<<CS10);
Line 206... Line 207...
206
void act_hwPWM_Process(void)
207
void act_hwPWM_Process(void)
207
{
208
{
208
    if (Timer_Expired(act_hwPWM_SEND_STATUS_TIMEOUT))
209
    if (Timer_Expired(act_hwPWM_SEND_STATUS_TIMEOUT))
209
    {
210
    {
210
        if (channel_to_send >4) {
211
        if (channel_to_send >4) {
-
 
212
          #if act_hwPWM_CH1_COM==0
211
            channel_to_send=1;
213
          channel_to_send = 2;
212
        }
214
              #if act_hwPWM_CH2_COM==0
213
/*      while (0
215
              channel_to_send = 3;
214
#if act_hwPWM_CH1_COM>0
216
              #if act_hwPWM_CH3_COM==0
215
          || channel_to_send != 1
217
                  channel_to_send = 4;
216
#endif
218
              #else
217
#if act_hwPWM_CH2_COM>0
-
 
218
          || channel_to_send != 2
219
                  channel_to_send=3;
219
#endif
220
                #endif  
220
#if act_hwPWM_CH3_COM>0
221
              #else
221
          || channel_to_send != 3
222
                  channel_to_send=2;
222
#endif
223
            #endif      
-
 
224
             
223
#if act_hwPWM_CH4_COM>0
225
          #else
224
          || channel_to_send != 4
226
            channel_to_send=1;
225
#endif
227
          #endif        
226
        ) {
-
 
227
            channel_to_send++;
-
 
228
            if (channel_to_send >4) {
-
 
229
                  channel_to_send=1;
-
 
230
            }
228
       
231
        }
229
        }
232
        */
-
 
233
        sendInfo[channel_to_send-1] = 1;
230
        sendInfo[channel_to_send-1] = 1;
234
        channel_to_send++;
231
        channel_to_send++;
235
#if act_hwPWM_CH1_COM==0
232
#if act_hwPWM_CH1_COM==0
236
          if (channel_to_send == 1)
233
          if (channel_to_send == 1)
237
            channel_to_send++;
234
            channel_to_send++;
Line 309... Line 306...
309
        sei();
306
        sei();
310
        Timer_SetTimeout(act_hwPWM_STORE_VALUE_TIMEOUT, act_hwPWM_STORE_VALUE_TIMEOUT_TIME*1000, TimerTypeOneShot, 0);
307
        Timer_SetTimeout(act_hwPWM_STORE_VALUE_TIMEOUT, act_hwPWM_STORE_VALUE_TIMEOUT_TIME*1000, TimerTypeOneShot, 0);
311
    }
308
    }
312
#endif
309
#endif
313
#if act_hwPWM_CH2_COM>0
310
#if act_hwPWM_CH2_COM>0
314
    if (OCR_2 != (uint16_t)(pwmValue[1]*act_hwPWM_CH2_FACT)>>8) {
311
    if (OCR_2 != (uint16_t)((uint32_t)pwmValue[1]*act_hwPWM_CH2_FACT)>>8) {
315
        cli(); 
312
        cli(); 
316
        OCR_2=(uint16_t)(pwmValue[1]*act_hwPWM_CH2_FACT)>>8;
313
        OCR_2=(uint16_t)((uint32_t)pwmValue[1]*act_hwPWM_CH2_FACT)>>8;
317
        if (OCR_2==0)
314
        if (OCR_2==0)
318
        {
315
        {
319
            TCCR1A&=~((1<<COM1A0)|(1<<COM1A1));
316
            TCCR1A&=~((1<<COM1A0)|(1<<COM1A1));
320
        }
317
        }
321
        else
318
        else
Line 496... Line 493...
496
                        if (fadeTarget[channel] < pwmValue[channel]) {
493
                        if (fadeTarget[channel] < pwmValue[channel]) {
497
                            fadeSpeed[channel] = -fadeSpeed[channel];
494
                            fadeSpeed[channel] = -fadeSpeed[channel];
498
                        }
495
                        }
499
                    }
496
                    }
500
                }
497
                }
501
                printf("abs fade %d %d %d!\n",fadeTarget[channel], endValue ,pwmValue[channel] );
498
                //printf("abs fade %d %d %d!\n",fadeTarget[channel], endValue ,pwmValue[channel] );
502
            }
499
            }
503
        break;
500
        break;
504
 
501
 
505
        case CAN_MODULE_CMD_HWPWM_REL_FADE: /* RelFade(channel, speed, direction, steps) */
502
        case CAN_MODULE_CMD_HWPWM_REL_FADE: /* RelFade(channel, speed, direction, steps) */
506
            if (rxMsg->Length == 5) {
503
            if (rxMsg->Length == 5) {