Schrittmotoransteuerung Mit Atmega8 und IC ULN 2003

OP #3382775
Lesenswert?

Hallo alle zusammen, ich bin im mom Ein Tutoriell zur Ansteuerung eines 
Bipolar Schrittmotors am ausprobieren (Siehe Anhang) und Bekomme Leider 
ein Fehler beim Übersetzen der Programms.

Es wäre echt super wenn ihr mir weiter helfen könntet
Und Sry dass es ev. ein banaler Fehler ist.

Hardware:
Myavr Board mit dem Atmega8
IC ULN 2003
Unipolar Schrittmotor
Angehängte Dateien:
#3382785
Lesenswert?

Was genau gibt es an
"warten.h: no such file or directory"
nicht zu verstehen

Anyway.

Schmeiss es raus.
Da drinn ist höchst wahrscheinlich die Implementierung der Funktion
1
   warten10ms();

die kannst du aber mit den üblichen Mitteln durch
1
    _delay_ms( 10 );
ersetzen, wenn wir mal davon ausgehen, dass der Name der Funktion ihrer 
Funktionalität entspricht.
OP #3384806
Lesenswert?

Danke für den Tipp, soweit Läuft dass Programm, nur jetzt bekomme ich 
den nicht nach links gedreht. Obwohl ich für links n-- geschrieben habe.

#define F_CPU 3686400
#include <avr/io.h>
#include <avr/delay.h>
//#include "warten.h"

//Steuerung eines unipolaren Schrttmotors
//(3.6 Grad/Vollschritt)
// W.Tschallener 4.10.2006
//Tabelle Vollschritt
uint8_t vs[4]={9,5,6,10},
//Tabelle Halbschritt
hs[8]={9,1,5,4,6,2,10,8},
n;

void rechtslauf_Vschritte(uint16_t ns){
uint16_t z;
for ( z=0;z<ns;z++){
n++;
PORTC =vs[n&3];
_delay_ms(5);
}
}

void linkslauf_Vschritte(uint16_t ns){
uint16_t z;
for(z=0;z<ns;z++){
n--;
PORTC =vs[n&3];
_delay_ms(5);
}
}

void rechtslauf_Hschritte(uint16_t ns){
uint16_t z;
for (z=0;z<ns;z++){
n++;
PORTC =hs[n&7];
_delay_ms(20);
}
}
void linkslauf_Hschritte(uint16_t ns){
uint16_t z;
for(z=0;z<ns;z++){
n--;
PORTC =hs[n&7];
_delay_ms(15);
}
}

void main(){
n=0;
DDRC = 0b00001111;

while(1)
{
rechtslauf_Vschritte(200);
_delay_ms(500);
linkslauf_Vschritte(600);
_delay_ms(500);
}
}
Gast #3384823
Lesenswert?

Hallo Anton!
Bist Du sicher, dass die Werte in Deinen Tabellen passen, abgesehen 
davon, dass Du den Ratschlag von Karl Heinz befolgen solltest? Könnte es 
sein, dass die Halbschritt-Reihenfolge 9,1,3,2,6,4,10,8 bei 
Rechtsdrehung  lautet? (Vermutung!!)
Gruss Gerhard
Gast #3384866
Lesenswert?

Blende22 schrieb:
> er muss nur die Zahlen-Reihenfolge umkehren, also 8,10,4,6,23,1,9  in
> dem Beispiel.

Und was macht n-- anderes? Da wird das Bitmusterarray von hinten 
abgearbeitet. Für Vollschritt ist außerdem die Vollschritttabelle 
aktuell, sonst würde die Maskierung mit '&3' beim Index auch nicht 
passen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren