Fehler im ASM-Code zur Motorsteuerung

Gast #396669
Lesenswert?

Hi,

im Simulator funktioniert es, in der Praxis keine reaktion auf die
Tasten. Ich arbeite mit dem Atmega8. Habe oben mal mein ASM-Source mit
gepostet. Ich habe die Fuses auf 1MHz gelassen erst einmal zu
Testzwecken.
somit: fclk = 1 MHz
verwende den Timer0 für die Entprellroutine
Prescaler: 256 (Sorry im ASM-Source stehen noch flasche werter)
aber 0x04 (00000100) ist Presc 256 laut DS ATmega8
dass heißt: T = 65 ms bei 8 Bit- Zähler (256)

Die Entprellroutine ist irgendeine abwandlung von Peter Danneberger.
Weiss aber nicht mehr wo ich die gefunden habe.
Nach der Zeile
  in  key_old, key_port  ;11110000
habe ich
  com key_old
eingefügt, dass soll bewirken das die Routine mit meine LOW-Activen
Tasten funktioniert. Die Taster liegen über die interne PUD's am Pin.
Habe auch gemessen und es liegt am PIN, HIGH-Pegel an (nicht gedrückter
Taster). Das heisst das der Pin sozusagen nicht kaputt ist.

Die Routine konnte ich leiderns nicht verstehen, habe sie aber im
Simulator getestet und sie funktionierte auf meine LOW-aktiven Taster.

Ich habe 5 Taster am uC. und keine von denen funktioniert :(. Wenn sie
funktionieren sehe ich ihren zustand über eine LED.

Weiss nicht woran es liegt :(
Freue mich sehr über Hinweise, Danke

daniel
Angehängte Dateien:
Gast #396670
Lesenswert?

Hi,

Sorry muss mich korrigieren. Ich habe die Reaktion der Tasten auf das
PWM-Signal gemessen und es funktioniert.
Leider funktioniert das einfache Toggel des Ausgangs (Motor Ein/Aus)
nicht. Und auch der Richtungswechsel, mit dem Rampenverfahren. Auch
keine Reaktion auf den Ausgang welcher beim Richtungswechsel eine
HIGH-Pegel bekommt. Zumindest ist am Ausgangspin nichts zu messen
davon.
Somit ist die Entprellroutine in Ordnung und ich muss woanders nach dem
Fehler suchen.

Wenn jemand mal den Code angeschaut hat und eine mögliche Fehlerursache
gefunden hat. Wäre das sehr hilfreich. Danke

daniel

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