Forum: Mikrocontroller und Digitale Elektronik Y-Pointer laden


von Obermayer F. (Firma: tbd) (foikei)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich stehe grad vor einem Problem, das ich mir nicht erklären kann:
Ich habe einen ATMega2560 auf einem Crumb-Board.
Programmiere in Assembler eine Rolladensteuerung mit AVR-Studio 4.19 
Build 716 unter WindowsXP (Windows läuft in einer VirtualBox-VM unter 
Ubuntu).
Für die IO-Porterweiterung verwende ich TWI-Bausteine PCA9555.

Wollte das Programm Schritt für Schritt mit einem JTAGICE MKII 
durchgehen.
Dabei ist mir aufgefallen, dass bei
1
lds  YH, HIGH(SR_Richtung_umschalten_neues_Direction_Byte)
2
lds  YL, LOW(SR_Richtung_umschalten_neues_Direction_Byte)
der Y-Pointer mit 0x0000 geladen wird?!
Siehe hierzu auch den Screenshot.
Ich habe das Low- und High-Byte schon vertauscht; HIGH/LOW und high/low 
ausprobiert.

Ich gehe stark von einem Bug im Debug-Modus von AVR-Studio aus...
In dem von mir erstellten Programm habe ich zig solcher Anweisungen; 
bisher ist mir kein derartiges Problem aufgefallen.
Oder habe ich eine Besonderheit des Y-Pointers übersehen?

Vielleicht hat ja einer nach dem Fussballspiel Zeit, mir aus meinem 
Gedankenloop zu helfen :-)

Danke euch im Voraus!

mfg
foikei

von Uwe (Gast)


Lesenswert?

Hi,
Was willst du denn laden? Die Adresse? Dann bitte ldi, den Wert? dann 
bitte lds ohne low/high

viel Erfolg, Uwe

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

wo ist denn das "ld REG,Y" ?

z.B. wie hier ...
#include "m64def.inc"

.dseg
fff:  .BYTE  1

.def temp = r16

.cseg
.org 0x0000
    rjmp    main

.org INT_VECTORS_SIZE

main:
  ldi temp, low(RAMEND)  ; Stackpointer initialisieren
  out SPL, temp
  ldi temp, high(RAMEND)
  out SPH, temp

  ldi temp,0x12
  sts fff,temp

  ldi YL,low(fff)
  ldi YH,high(fff)
  ld temp,Y

g:
  rjmp g

: Bearbeitet durch User
von Obermayer F. (Firma: tbd) (foikei)


Lesenswert?

hallo,

jupp...ist mir gerade im Bett eingefallen...
Muss natürlich ein "ldi" sein, kein "lds".

Danke euch.

mfg
Foikei

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.