AVR Assembler ATmega8 Schrittmotorenansteuerung

OP #2303170
Lesenswert?

Hallo!
Ich bin im Rahmen eines Schulprojektes gerade dabei einen kleinen 
mobilen Roboter mit 2 Schrittmotoren und dem Leistungstreiber L298 sowie 
einem ATmega8 zu entwickeln. Zuerst habe ich einen Schrittmotor über ein 
normales Programm mit Warteschlangen und 4 Ausgabewechsel am Portd 
betrieben. Hat funktioniert. Jetzt möchte ich 2 Motoren (rechts und 
links) so betreiben, dass der eine Motor schnell und der andere langsam 
dreht, so dass eine kurve gefahren würde. Das habe ich mit 2 Intrerrupts 
gemacht, jeder Moter 1 Interrupt. Vorher wird festgelegt, welche 
Schrittfrequenz die Motoren jeweils haben sollen. Es funktioniert jedoch 
nichts und ich verzweifle. Ich bin sicher der Fehler ist für jemanden 
der forgeschritten ist leicht findbar. Bitte dringend um Hilfe! Datei im 
Anhang.

Danke im Voraus, Jabu
Angehängte Dateien:
#2304010
Lesenswert?

und hier noch was ...
1
Motor1:          dec Steptime1                ;Stepfrequenz einhalten
2
      brne StillDelay1 
3
      push A
4
      push B
5
      in A,SREG

das sichern des Statusregisters gehört immer an den Anfang der 
Int-Routine!
(siehe auch Code von Helfer)
Macht bei dir zwar in dem Fall nicht's, weil du innerhalb der Schleife 
im Hauptprogramm überhaupt nicht's machst.

__________________________________________________
1
.def A         = r16
2
...
3
      in A,SREG
... wie schön das man sich auch beim AVR einen Akkumulator definieren 
kann - erinnert mich irgendwie in Z80 Zeiten.


Sascha

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