So wird wenigstens noch eine kleine Rampe beachtet, meine Lösung war da radikaler:
PWM wird direkt gesetzt (und die nötigen Lib-Variablen werden angepasst), ohne Rücksicht auf Verluste. Mit allen Vor- und Nachteilen die diese Ansteuerung mit sich bringt.Code:// Achtung! Die PWM-Werte werden hier OHNE Rampe verändert! void setMotorPWM(uint8_t power_links, uint8_t power_rechts) { extern uint8_t mleft_ptmp, mright_ptmp; if(power_links > 210) power_links = 210; if(power_rechts > 210) power_rechts = 210; mleft_power=mleft_ptmp=power_links; mright_power=mright_ptmp=power_rechts; OCR1BL = power_links; OCR1AL = power_rechts; if(power_links || power_rechts) TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1); else TCCR1A = 0; }
Gruß
mic







Zitieren
Lesezeichen