L297 Schrittmotoransteuerung mit PIC18F452

Gast #1451095
Hallo Hobby-Bastler,

ich habe ziemliche Schwierigkeiten mit der Programmierung von 
Schrittmotoren. Ich möchte gerne einen Schrittmotor unter 
Vollschritt-Betrieb entweder vorwärts oder rückwärts laufen lassen. Das 
Problem an der ganzen Sache ist aber, daß der Schrittmotortreiber 
(Pollin) nur mit einem L297 Baustein ausgerüstet ist und somit alle vier 
Spulenenden eines bipolaren Schrittmotors angeteuert werden müssen.

Ich habe es nun mithilfe eines Kollegen geschafft, den Schrittmotot in 
eine Richtung um eine vorgegebene Anzahl von Schritten zu bewegen. 
Ändere ich den Code ab, so dass er sich in entgegen gesetzter Richtung 
drehen müßte ruckelt der Motor und übberspringt Schritte.

Hier ist das funktionierende Codeschnipsel:

Interrupt-Serviceroutine 
**************************************************/
#pragma interrupt low_isr
void low_isr (void)
//Die Interrupt-Service-Routine wird bei Überlauf des Counters (also bei 
INTCONbits.TMR0IF=1) angesprungen.
{
  TRISC=0;

  PIR1bits.TMR1IF=0;  //Interruptflag zurücksetzen


  if (r<steps)
  {
    Rlncf(PORTC,1,0);   // Motor Linkslauf
    if (PORTC>8) PORTC=1;
  }




  else if (r=steps)    // Motor aus
  {
    T1CONbits.TMR1ON=0;
    TRISC=0x01;
    PORTC=0x01;
    run=0;
  }

  WriteTimer1(62500);
  r++;

}//end low_isr


#pragma interrupt high_isr
void high_isr (void)
{
  INTCONbits.TMR0IF = 0;        // Interruptflag zurücksetzen
}//end high_isr
**************************************************/

Für den Fall, dass der Motor zurückdrehen soll brauche ich den
Code nur folgendermaßen umschreiben:

  if (r<steps)
  {
    Rrncf(PORTB,1,0);     // Motor Rechtslauf
    if (PORTB<1) PORTB=8;
  }


Die vier Pins (a,b,c,d) für den Schrittmotor greife ich am PORTC an den
bits RC0 bis RC3 ab.

Was mache ich falsch?

Viele Grüße und danke mal!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.