Forum: Mikrocontroller und Digitale Elektronik Simulator nicht in ordnung?


von sebastian (Gast)


Angehängte Dateien:

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?

von ...HanneS... (Gast)


Lesenswert?

.org 0
 rjmp reset

von AxelR. (Gast)


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.

von sebastian (Gast)


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

von sebastian (Gast)


Lesenswert?

nein beim lesen muss ich erst das low-byte auslesen.
das funtz ja auch alles. es geht lediglich um den timer1, der im
simulator nicht richtig läuft

von sebastian (Gast)


Lesenswert?

sorry  antwort 4 gehört zu antwort 2

von ...HanneS... (Gast)


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.

von sebastian (Gast)


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.

von ...HanneS... (Gast)


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...

von sebastian (Gast)


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
... :-(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.