Indirekt adressering.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

GoAmiga > Jag läser ner värdet i INDF, men sedan när jag läser ur INDF (direkt i nästa steg) så får jag endast ut 00h när jag flyttat värdet från RECIVEKB till RECIVEKB_B via INDF.

Om du inte använder MPSIM hur vet du då att du får 00h när du läser från INDF? Har du någon display ansluten?

Om du inte får ut det du skriver in är det möjligt att du inte skriver in det du tror, eller att du inte läser från samma ställe där du skriver. Antar att du inte använder någe interrupt som rotar runt i FSR?

De fyra rader du strippat ner problemet till kan knappast vara felet, du letar antagligen på fel ställe.

Du använder väl movlw när du laddar addressen dit du skall skriva och läsa och inte movfw eller movf ADDRESS,w?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

För att ladda (den "indirekta") adressen (i FSR) kan antingen

Kod: Markera allt

   MOVLW <symbol/constant>
   MOVWF FSR
eller

Kod: Markera allt

   MOWF <reg>, W
   MOVWF FSR
användas.
Det beror på om värdet är givet vid "assembly time" (symbol) eller
om det är dynamiskt vid "run time" (register).

Notera också att man alltid får h'00 om man läser INDF i sig självt,
d.v.s om man har h'00' i FSR...
Skriv svar