-
        

Ergebnis 1 bis 2 von 2

Thema: Programmierhilfe bei Ansteuerung von Schrittmotor (L297/298)

  1. #1

    Programmierhilfe bei Ansteuerung von Schrittmotor (L297/298)

    Anzeige

    Hallo Leute,
    ich brauche mal die eure Hilfe. Habe die Schrittmotoransteuerung mit dem L297 und L298 gebaut und einen Schrittmotor aus nem alten Drucker damit in Betrieb, der läuft auch soweit. Jetzt möchte ich den Motor über den Computer ansprechen - hier liegt auch mein Problem. Ich würde z.B. gern das Signal übergeben, das sich der Motor einfach um 5 Schritte nach rechts dreht, aber ich habe keine Ahnung wie man das programmiertechnisch umsetzt.

    Der Motor soll über den Paralellport angesprochen werden und ich würde das ganze in C oder JAVA (dann mit RXTX) lösen. Gearbeitet wird dabei unter Debian Lenny.
    Die Problematik ist, das ich nicht weis, wie man jetzt einen spezifischen Pin des LPT anspricht, und was ich dem Motor dann über den Pin überhaupt schicken soll. (ein bit? ein byte?)

    Ich bin hier noch Anfänger und würde mich über Hilfe sehr freuen,

    Yulivee

  2. #2
    Code:
    #include<sys/types.h>  //open
    #include<sys/stat.h>    //open
    #include<fcntl.h>         //open
    
    #include<unistd.h>     //read,write,close
    
    #include<sys/ioctl.h> //ioctl
    
    /* benutzte data-pins:
    Pin 9, I/O, Bit 7 = data bit 7   => enabled auf high oder low setzen
    Pin 8, I/O, Bit 6 = data bit 6   => CW / CCW
    Pin 7, I/O, Bit 5 = data bit 5   => Clock(muss so aussehen : 101010101010101)
    */
    
    // gnd will find its own way
    
    int port;
    port = open("/dev/parport0", O_RDWR ); //Parallelport
    ioctl ( port, PPCLAIM, NULL );		       // öffnen
    
    if ( port == -1 )
    {
    	// Fehler - Port konnte nicht geöffnet werden
    }
    
    //Register lesen
    /*
    unsigned char r;
    ioctl ( port, PPRCONTROL, &r ); //control-Register lesen
    ioctl ( port, PPRSTATUS, &r );     //status-Register lesen
    ioctl ( port, PPRDATA, &r );        //data-Register lesen
    
    //Register schreiben
    unsigned char r;
    r = 0xXX;
    ioctl ( port, PPWCONTROL, &r ); //control-Register schreiben
    ioctl ( port, PPWDATA, &r );        //data-Register schreiben
    
    ioctl( port, PPRELEASE, NULL );   // Parallelport
    close ( port );				   // schließen
    so, das hier habe ich mir nach einem Artikel auf http://www.mikrocontroller.net/artic...benutzen_(GCC) schon zusammengereimt.

    Im Prinzip fehlt mir nur noch, wie ich jetzt über die (oben im Code in Kommentaren angegebenen) Pins den Motor anspreche; also wie sage ich

    1.) "setze über pin 9 enabled auf high"

    2.) "setze über pin 8 die drehrichtung auf CW"

    3.) "schicke über pin 7 folgenden takt an clock: 10101010101010..."

    Dazu hab ich bei Google noch nix brauchbares gefunden...

    Yulivee

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •