Gast
#403815
Hallo, ich steuere einen L293D an. Das funktioniert auch prima. Nun wollte ich auf den Enable-Eingang eine PWM legen, um die Geschwindigkeit des an den L293D angeschlossenen Motors zu regeln. Dazu habe ich folgenden Code erstellt. Bis dahin läuft das auch: CCR0 = 512-1; // PWM Period CCTL1 = OUTMOD_7; // CCR1 reset/set CCR1 = 255; // CCR1 PWM duty cycle CCTL2 = OUTMOD_7; // CCR2 reset/set CCR2 = 0; // CCR2 PWM duty cycle TACTL = TASSEL_1 + MC_1; // ACLK, up mode _BIS_SR(LPM3_bits); // Enter LPM3 Nun wollte ich folgendes realisieren. Ich wollte an den Controller Tasten anschließen und abhängig von Tastendrücken, wollte ich die Drehrichtung, GEschwindigkeit usw. des Motor ändern. Ich bekomme alles hin, bis auf die Geschwindigkeiseinstellung. Hier mal ein Codeausschnitt: CCR0 = 512-1; // PWM Period CCTL1 = OUTMOD_7; // CCR1 reset/set CCR1 = 0; // CCR1 PWM duty cycle CCTL2 = OUTMOD_7; // CCR2 reset/set CCR2 = 0; // CCR2 PWM duty cycle TACTL = TASSEL_1 + MC_1; // ACLK, up mode _BIS_SR(LPM3_bits); // Enter LPM3 for(;;) { if ((P5IN & 0x01) == 0) // Tast 1 { // Motor rechts herum drehen // M1en= 1, M1b= 0; M1a= 1; CCR1 = 255; // CCR1 PWM duty cycle P2OUT|=0x20; // M1a auf High P2OUT&=~0x40; // M1b auf High }/* if ((P5IN & 0x01) == 0) */ if ((P5IN & 0x02) == 0) // Tast 2 { // Motor links herum drehen // M1en= 1, M1b= 1; M1a= 0; CCR1 = 255; // CCR1 PWM duty cycle P2OUT|=0x40; // M1b auf High P2OUT&=~0x20; // M1a auf Low }/* if ((P5IN & 0x02) == 0) */ mit den Zeilen: CCR1 = 255; // CCR1 PWM duty cycle wollte ich halt die Geschwindigkeit einstellen. Das funktioniert aber leider nicht, wenn ich das oben irekt in der INitialisierung einfüge, also über der for-Schleife, läuft das ganze. Kann man den Wert von "CCR1" nicht einfaach so ändern oder wie muss ich das anstellen? Jemand ne Idee? Gruß Marco