Indirekt adresering, funkar detta?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Indirekt adresering, funkar detta?

Inlägg av gvs »

kommer den här koden att funka på en pic 12f629, den kompilerar med meddelandet : Message[305] E:\GUSTAV\IBUTTON\IBUTTON.ASM 136 : Using default destination of 1 (file). men det ska väl inte vara nåt problem?


MOVLW 0xA0 ;initialize pointer A0 är första ramen i bank 1
MOVWF FSR ;to RAM
MOVLW READROM ; här ligger 0Fh det är en ibutton den ska läsa
CALL DSTXBYTE ; Send Read ROM Command (0x0F)
NEXT
CALL DSRXBYTE ; hämtar data från ibutton
MOVF IOBYTE,W ; datan lagras tillfälligt i IOBYTE
MOVWF INDF ; gör jag rätt?
INCF FSR ;inc pointer
BTFSS FSR,3 ; efter 8 varv ska den sluta... stämmer det?
GOTO NEXT
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Hej igen :)
Meddelandet du får är helt normalt, inget att oroa sig för.
För att hämta/skriva åtta byte ska du sluta när FSR blir A8 alltså bit 4 blir en 1:a
...00000000 A0
...00001000 A8
Annars tycker jag det ser bra ut, förutsatt att det du callar fungerar som de ska.
Och till sist om du inte vet det så pekar adresserna A0-DF på samma minne som 20-5F

[edit]som gvs påpekar senare ska det vara bit 3 om man räknar med 0-7
Senast redigerad av mrmike 1 mars 2004, 12:01:36, redigerad totalt 2 gånger.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Du kan använda MPLAB simulatorn för att testa koden:
Debugger -> Select Tool -> MPLAB SIM.
För att kika på innehållet i RAMet väljer du: View -> Special Function Register.
Sen trycker du F8 för att köra rad för rad.

För att bara testa FSR-grejset kan du testa den här koden:


MOVLW 0xA0 ;initialize pointer A0 är första ramen i bank 1
MOVWF FSR ;to RAM
MOVLW 0x77
MOVWF IOBYTE
NEXT
MOVF IOBYTE,W ; datan lagras tillfälligt i IOBYTE
MOVWF INDF ; gör jag rätt?
INCF FSR ;inc pointer
BTFSS FSR,4 ; efter 8 varv ska den sluta...
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

ska det verkligen vara 4? är det inte byte 0-4 man räknar så att det då blir en trea på fjärde platsen?
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

så klart, det är jag som ljuger. 3 ska det va :)
Skriv svar