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
Hallo, ich hab den Fehler schon gefunden. Ich sollte "_BIS_SR(LPM3_bits); // Enter LPM3" weglassen. Dann gehts. Gruß Marco
oder die Taster auf Interrupt-Eingänge legen und dem MC beim Tasten dadurch wieder aufwecken.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.