Habe das Problem das ich eine kleine Datemenge sortieren muss. Nur 4 "Arrays" a 2 Bytes. Müsste also einen festen Speicherplatz von 8 BYtes nutzen. Folgende Situation: ich pop 3 Byte an Daten vom Stack. Das erste Byte bestimmt die Position ("sortieren"). Die anderen 2 sind Timerwerte und lese ich zunächst in jeweils ein Register ein (eins für Low und eins fürs High Byte). Wie schreibe ich nun diese Bytes an eine für mich nutzbare Adresse (nutze auch Stack, den ich mit SP, RAMEND initialsiert habe), so dass alle 8 Bytes hintereinander stehen. Und wie kann ich diese 8 BYtes dann wieder sukzessive auslesen und ausgeben. Ich weiß das alles in der Doku steht, aber leider verstehe ich das nicht ganz. MfG.Olli P.S nutze den 4433
Welchen Speicherbereich kann ich nutzen? (ohne mit dem Stack in Berührung zu kommen, mit dem ich max 12 Byte speicher) Inder Doku steht als BEispiel für das Store Indirect eine Speicherplatz von $0060. (= Dezimal 96) Ist das auch für meinen 4433 sinnvoll? Dann könnte ich ja im Low Byte 60 bis 68 nutzen. Fürs lesen nehme ich dann wahrscheinlich indirekt Adressierung. Ist wahrscheinlich schöner...
Hier ist mein Codeschnipsel: leider funktioniert da irgendwas nicht. Er macht eine Endlosschleife. Vielleicht erbramt sich einer und schaut sich das mal. Es ist ziemlich einfacher Code..
Hi, du bedankst dich für meine ausführliche Antwort (STS/LDS). Nix zu danken, Kundendienst. Du fragst nach dem zu benutzenden Speicherbereich. Nunja, sagen wir mal Adressbereich, denn da gibt es nicht nur Speicher: - 0-31 ($00-$1f): 32 Register, - 32-95 ($20-$5f): 64 I/O-Adressen, - ab 96 ($60): SRAM Deinen Stackpointer initialisierst du auf die letzte SRAM-Adresse. Er wirkt decrementierend, zählt bei Anwachsen des Stacks also herunter. Wie weit, hängt von deinem Programm ab. Frei nutzen kannst du den Adressbereich zwischen SRAM-Beginn und maximalem Stackbedarf, also die Adressen ab $60. Aber aufgepasst, das gilt nicht für alle AVRs, es gibt welche, die haben so viel I/O-Bereich, dass der RAM-Anfang nach oben verschoben wurde. Du wirst also schon mal einen Blick ins Datenblatt riskieren müssen. Aber beim 4433 fängt SRAM definitiv bei $60 an. Übrigens habe ich mir dein Programm nicht näher betrachtet da ich beim ersten flüchtigen Hinsehen wichtige Teile vermisst habe. Vielleicht solltest du dir erst mal Programme anderer Beiträge ansehen, z.B. aus der Codesammlung. Und dann auch mal den Simulator bemühen, der ist (Fehlermeldungen betreffend) recht geschwätzig (hilfreich). Viel Erfolg! MfG, Heinz
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.