INFO - FAQ - CC2-Forum - CCPro-Forum |
hola!! vielen dank, werd ich gleich mal ausprobieren, auf die idee wär ich nie gekommen. danke nochmal GREETZ Christian > 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 |