Simulator nicht in ordnung?

Gast #125224
Lesenswert?

hi
ich habe folgendes Problem:
wenn ich meine asm-datei simuliere, startet mein timer erst, wenn der
startwert nicht 0 ist und zählt auch bei einem comparematch weiter,
anstatt zu löschen.
kann mir jemand weiter helfen?
Angehängte Dateien:
Gast #125226
Lesenswert?

Hi,
leider sehe ich mit deinen hexadezimalen zuweisungen nicht durch.
Ich habe keine Datenblatt vom 8515 zur Hand und weiss nun nicht was
die hex10 und die hex09 im TccR register machen...
Aber musst du nicht beim auslesen vom OCR1 erst das High-byte und dann
das LowByte auslesen? irgentwie gibts doch da eine Vorschrift.
Beim Schreiben machst du es ja auch.
Gruß
axel

Mit den (nicht)symbolischen Schreibweisen wurde aber schon öfters
kritisiert.
Gast #125227
Lesenswert?

das ist nicht der fehler
mein programm startet ja (im simulator)
nur der timer läuft erst, wenn im timerregister nicht der wert 0 steht.
ist das normal und nur im simulator so oder ist das später im chip
genauso.
was muss ich denn alles machen, um den timer zum laufen zu bringen
Gast #125230
Lesenswert?

Und wie (und wann) erreicht dein Programm die Reset-Routine???

Du musst an Adresse 0 einen rjmp auf die Reset-Routine setzen, sonst
läuft dein Programm beim Start in den Int-Vektor und ruft die ISR auf
bevor die Ressourcen initialisiert sind.

Den Rest des Programms habe ich nicht analysiert, da es zu mühsam ist,
ein Programm zu analysieren, in dem die Bits in Steuerregistern keine
symbolischen Namen haben.
Gast #125231
Lesenswert?

ja mit den steuerregistern hast du schon recht.
aber die sind in ordnung.
ich sage ihm er soll timer 1 mit dem compare - B - Modus connecten
ihm eine frequenz geben ihn bei einem compare-match zurücksetzten
und das compare b bit togglen.

aber kleine gegenfrage zu dem reset:
welcher befehl (kein config-befehl) steht denn vor dem befehl
rjmp Reset???
keiner, also wird er an Adresse 00 geschrieben.
Gast #125232
Lesenswert?

Sorry, das "rjmp reset" sehe ich jetzt erst, das ist im Kommentar
versteckt und vor den Registerdefinitionen vermute und suche ich keine
Anweisungen. Daher habe ich es übersehen. Bist du sicher, dass deine
Registerdefinition funktionieren? Ich habe die immer nach .include und
vor der ersten Anweisung.

...HanneS...
Gast #125233
Lesenswert?

das programm an sich funktioniert einwandfrei.
nur der timer läuft im simulator nicht. nur wenn ich einen Wert in das
timer register reinschreibe läuft er, aber das ist ja nicht die lösung
des Problems, denn wenn er im Simulator überläuft zählt er nicht weiter
... :-(

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