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?
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.
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
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
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.
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.