Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Ist bei wahlfreiem Speicherzugriff auch WORD-Speicherung möglich? Kategorie: Programmierung ASM (von Michael - 12.02.2004 16:34)
 Als Antwort auf Ist bei wahlfreiem Speicherzugriff auch WORD-Speicherung möglich? von Christian - 12.02.2004 15:45
da du schreibst dass du von assembler wenig ahnung hast,
denk ich mal das du lediglich diese assembler routine
von basic aus aufrufen willst.

die EEprom Bausteine 24C.. sind allesamt 8 Bit Speicher,
können also nicht direkt 16 Bit wörter aufnehmen.
Du wirst also dein 16 Bit wort in 2 Byte Teilen müssen.

probier es mal so:

define w word
define b1 byte
define b2 byte

b1=w
b2=abs(w/256)
end

Die beiden Bytes kannst du dann speichern und später wieder
zusammenfügen:

w=b1+(b2*256)


> Hola!
>
> Ich hab mit untem stehenden ASSEMBLER-Programm die Möglichkeit BYTE-Werte zu schreiben und zu lesen. Jetzt würde ich aber gerne auch WORD-Werte schreiben/lesenkönnen. Da das Proggi aus dem Netz ist und ich keine bis wenig Ahnung von Assembler habe, hoffe ich auf Hilfe!!
> Hier das ASSEMBLER-PROGRAMM
>
> ;Wahlfreier Zugriff auf ein EEPROM EEIO.ASM
>
> AdrI2C .equ $A1  ;Uebergabe Busadresse
> Dat .equ $A2  ;Daten in/out
> AdrHi .equ $A3  ;interne Adresse
> AdrLo .equ $A4  ;als Word
>
> .org $101
> ;Einsprung $101, Daten schreiben
> ;CC-EEPROM vom Bus abmelden
> jsr $08BB  ;I2C_ReadLast
> ;Byte in eigenes EEPROM schreiben
> ldx AdrI2C  ;I2C-Adresse
> jsr $083C  ;I2C_Start
> ldx AdrHi  ;Adr High
> jsr $0846  ;I2C_Write
> ldx AdrLo  ;Adr Low
> jsr $0846  ;I2C_Write
> ldx Dat    ;Daten
> jsr $0846  ;I2C_Write
> jsr $08E5  ;I2C_Stop
> ;CC-EEPROM wieder anmelden
> ldx #$0A0  ;Adresse 24C65, write
> jsr $083C  ;I2C_Start
> ldx $066  ;AdrCounter Hi
> jsr $0846  ;I2C_Write
> ldx $067  ;AdrCounter Lo
> jsr $0846  ;I2C_Write
> ldx #$0A1  ;Adresse 24C65, read
> jsr $083C  ;I2C_Start
> rts
> ;Einsprung $130, Daten lesen
> ;CC-EEPROM vom Bus abmelden
> jsr $08BB  ;I2C_ReadLast
> ;Byte aus eigenem EEPROM lesen
> ldx AdrI2C  ;I2C-Adresse
> jsr $083C  ;I2C_Start
> ldx AdrHi  ;Adr High
> jsr $0846  ;I2C_Write
> ldx AdrLo  ;Adr Low
> jsr $0846  ;I2C_Write
> ldx $0A1  ;I2C-Adresse
> incx    ;Adr+1
> jsr $083C  ;I2C_Start
> jsr $086F  ;I2C_Read
> sta Dat    ;Daten speichern
> jsr $08BB  ;I2C_ReadLas
> ;CC-EEPROM wieder anmelden
> ldx #$0A0  ;Adresse 24C65, write
> jsr $083C  ;I2C_Start
> ldx $066  ;AdrCounter Hi
> jsr $0846  ;I2C_Write
> ldx $067  ;AdrCounter Lo
> jsr $0846  ;I2C_Write
> ldx #$0A1  ;Adresse 24C65, read
> jsr $083C  ;I2C_Start
> .end
>
> DANKE schon mal im Voraus!
>
> Christian
>
>

 Antwort schreiben

Bisherige Antworten:

Re: Ist bei wahlfreiem Speicherzugriff auch WORD-Speicherung möglich? (von Christian - 12.02.2004 16:45)
    Re: Ist bei wahlfreiem Speicherzugriff auch WORD-Speicherung möglich? (von Micha - 20.02.2004 8:33)