Hallo liebe Gemeinde! Ich bin Anfänger im Programmieren von µC und brauche Hilfe. Zu machen habe ich ein Programm welches mir einen Schrittmotor über eine PWM steuert. Der Motor soll sozusagen über eine Rampe anfahren. µC = PIC 18f4525 mit 40Mhz. Was ich aus dem Datenblatt und dem Forum rauslesen konnte, benötigt die PWM den Timer2. Getestet wird das ganze an der LED des RC2 Pins an meinem Test Board. Im Moment ist es leider so, dass die LED entweder ständig auf "1" oder ständig auf "0" ist, was nicht meinen Vorstellungen entspricht. Ziel wäre es: blinkender Zustand -> einige Sec. auf "1" -> blinkender Zustand -> LED aus. Der folgende Code ist mit Hilfe des Datenblattes und den Infos aus diesem Forum erstellt worden, hat aber sicher noch unzählige Fehler in sich, da ich noch nicht so geübt darin bin. void initalizePWM() { //Port Einstellungen TRISC=0x00; //PORTC als Ausgang definieren PORTC=0x00; //PORTC Inhalt löschen //CCP/PWM Modul Einstellungen CCP1CON=1; //jede steigende Flanke PR2=0xFF; //max. Periode (0-255 bei Timer2) 8 Bit PWM1CON=0x2F; CCPR1L=128; //CCPR1L/CCPR1H=Duty Cylce??? //Timer 2 Einstellungen T2CONbits.T2CKPS1=1; //Timer 2 prescaler: T2CONbits.T2CKPS0=1; // T2CONbits.TOUTPS3=1; //Timer 2 postscaler: // T2CONbits.TOUTPS2=1; // T2CONbits.TOUTPS1=1; // T2CONbits.TOUTPS0=1; PORTC=0x04; T2CONbits.TMR2ON=1; //Timer 2 an } void main() { } Wenn mir jemand helfen kann, ich würde mich über hilfreiche Kommentare freuen.
Vielleicht übersehe ich ja auch was. Aber ich wüsste nicht wirklich, was jetzt ein Schrittmotor mit PWM zu tun hat.
Alexander L. schrieb: > habe ich ein Programm welches mir einen Schrittmotor über eine PWM > steuert. Der Motor soll sozusagen über eine Rampe anfahren. Ein Schrittmotor wird z.B. so angesteuert: Timerinterrupt: static int phase =0; if(phase == 0) Phase 1; if(phase == 1) Phase 2; if(phase == 2) Phase 3; if(phase == 3) Phase 4; phase++; if(phase == 4) phase=0; Ende Je schneller du den Interrupt wiederholen lästt, umso schneller dreht der Schrittmotor. Hat erst mal nix mit PWM zu tun. :-)
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.