INFO - FAQ - CC2-Forum - CCPro-Forum |
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 |