ATmega8515 Array

Gast #3656809
Lesenswert?

Muffin schrieb:
> Es sollte ein Array mit Assembler im Programm AVR Studio V 4 erstellt
> werden, das 8 Ziffern abspeichern kann.

es gibt so etwas wie Array nicht wirklich in ASM.

du kannst dafür 8 Register verwenden, wenn du genug hast. Oder einfach 
8bytes aus dem RAM.

Anlegen muss man es auch nicht wirklich, die Frage ist wie man rein 
schreibt oder daraus liest.
#3656817
Lesenswert?

Peter II schrieb:

> Anlegen muss man es auch nicht wirklich,


sagen wir mal so.
Wenn er 8 hintereinanderliegende Bytes im SRAM sauber für sein Programm 
reserviert haben will, dann muss er das dem Assembler auch mitteilen.

1
                 .DSEG 
2
MeineDaten:      .BYTE  8
reserviert 8 Bytes im SRAM und macht die Startadresse davon unter dem 
Namen 'MeineDaten' verfügbar.
Siehe auch
http://www.mikrocontroller.net/articles/AVR-Tutorial:_SRAM
Gast #3656994
Lesenswert?

Karl Heinz schrieb:
> Peter II schrieb:
>
>> Anlegen muss man es auch nicht wirklich,
>
> sagen wir mal so.
> Wenn er 8 hintereinanderliegende Bytes im SRAM sauber für sein Programm
> reserviert haben will, dann muss er das dem Assembler auch mitteilen.
>
>                  .DSEG
> MeineDaten:      .BYTE  8
> reserviert 8 Bytes im SRAM und macht die Startadresse davon unter dem
> Namen 'MeineDaten' verfügbar.
> Siehe auch
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_SRAM

Danke dir für deine Auskunft =)
#3657476
Lesenswert?

Weiß der Assembler, wo das freie SRAM für den Benutzer anfängt? Es steht 
im Header File, hier z.B. unter SRAM_START in m8515def.inc, aber ich 
habe gerade erst damit angefangen und würde zw. dem ersten .DSEG und 
.BYTE noch ein .ORG SRAM_START setzen. Oder meine Bytes sofort am 
Programmanfang auf dem Stack reservieren.
#3664127
Lesenswert?

Coldplay schrieb:
> lerne den Debugger zu nutzen. Learning by doing.

Funktioniert prima! Da kann ich mein STK500 usw. ja wieder verkaufen :-)

c-hater schrieb:
> er (Anm.: der Assembler) weiss, ob das Traget z.B. die Instruktionen
> call, jmp oder mul unterstützt oder ob es 16 oder 32 Register hat.

Dazu kann ich in den *def.inc unter Atmel Studio Appnotes leider nichts 
finden. Wo steht denn das alles in einer Form, die im Quellcode 
includiert und ausgewertet werden kann (also keine Datenblätter *.PDF)?
Gast #3664168
Lesenswert?

Hi

>Dazu kann ich in den *def.inc unter Atmel Studio Appnotes leider nichts
>finden. Wo steht denn das alles in einer Form, die im Quellcode
>includiert und ausgewertet werden kann (also keine Datenblätter *.PDF)?

Das steht verschlüsselt in deiner m8515def.inc:

#pragma AVRPART CORE CORE_VERSION V2E

MfG Spess
#3665243
Lesenswert?

Danke für den Tip! Zu Direktive #pragma gibt es allerhand im Inet, aber
keine Details zu den beim AVR bzw. AT-Studio verwendeten Parametern. Da 
werde ich benötigte Angaben aus den Datenblättern heraussuchen und durch 
bedingte Kompilierung im Code einfügen.

Mich stört, daß beim AVR-Studio (4.19) der Pfad zu den selbstgebastelten
INC-Dateien bei jedem neuen Projekt eigens eingegeben werden muß. Der 
Pfad wird wohl nur in der Projektdatei gespeichert. Oder kann ich ihn 
irgendwo so eingeben, daß er immer für alle meine Projekte gilt?
#3666357
Lesenswert?

Es ging z.B. um den MCU-spezifischen Befehlssatz, Anzahl der Register, 
der Interrupts und der Bytes pro Int-Vektor in der Tabelle. Allerdings 
hat es sich mittlerweile erübrigt.

Es ging um SRAM-Reservierung für den Stack. Aber wenn Interrupts auch 
bei gleichzeitigem Auftreten immer nur nacheinander abgearbeitet werden, 
dann müssen auch nur 2 Byte SRAM für eine einzige Rücksprungadresse auf 
dem Stack frei sein, wenn ich mal von meinen anderen Subroutinen absehe.

Es ging auch um gemeinsame Nutzung einer Quelltext-Vorlage für mehrere 
MCU-Typen. Die Anzahl Bytes/Int-Vektor brauche ich aber nicht dringend, 
da in jedem Projekt wohl verschiedene Interrupts verwendet werden. Also 
gehört die Int-Vektor-Tabelle in den Quelltext des Projektes und nicht 
in eine gemeinsame Vorlage oder Include-Datei.

Bei den MCU-spezifischen Befehlen wäre es z.B. darum gegangen, über 
welche CALL- oder Sprungbefehle eine MCU verfügt. Aber: wenn ich in 
gemeinsamen Quelltexten zuviel mit bedingter Kompilierung hantiere, dann 
wird es schnell unübersichtlich und dadurch auch fehleranfällig.

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