:-/Un ejemplito que funciona, igual RARAAVIS ha trabajado un poco mas y lo ha presentado mejor
Include "PROTON18_20.INC"
XTAL = 4
DECLARE SHIFT_DELAYUS 5
'******************* VARIABLES Y CONSTANTES **********************
DIM WRT_ENB AS byte
DIM WRT_CMD AS byte
DIM WRT_DIS AS byte
DIM RD_CMD AS byte
dim HOLA [4] AS BYTE
dim i AS BYTE
DIM LOW_ADDR AS BYTE
DIM HIGH_ADDR AS BYTE
Symbol CS_ = PORTC.0 ' Chip select pin
Symbol SCK_ = PORTC.3 ' Clock pin
Symbol SDI_ = PORTC.4 ' Data in pin
Symbol SDO_ = PORTC.5 ' Data out pin
WRT_ENB = %00000110
WRT_CMD = %00000010
WRT_DIS = %00000100
RD_CMD = %00000011
HOLA
HOLA [1] = "B"
HOLA [2] = "C"
HOLA [3] = "D"
Dim Addr as WORD ' Address
DIm B0 as Byte ' Data
Delayms 500 ALL_DIGITAL = TRUE ' Set PORTA and PORTE to digital
high CS_ ' Chip select inactive
Delayms 5 ' Wait for LCD to start up
Gosub eewriteen ' Enable SEEPROM writes
HIGH_ADDR = 0
LOW_addr = 0 ' B0 is data for SEEPROM
gosub eewrite ' Write to SEEPROM
loop1: Goto loop1
'******* Subroutine to read data from addr in serial EEPROM ********
eeread:
CS_ = 0
Shout sDo_, sCK_, MSBFIRST, [RD_CMD\8, LOW_ADDR\8]
Shin sDi_, sCK_, MSBPOST_H, [B0]
CS_ = 1
Return
'************** Subroutina para escribir EEPROM ******************
eewrite:
CS_ = 0
Shout sDo_, sCK_, MSBFIRST, [WRT_CMd, high_addr, LOW_ADDR, STR HOLA] ' Send write command, address and data
CS_ = 1
delayms 5
'************* Subrutina que habilita escritura de EEPROM *************
eewriteen:
CS_ = 0
Shout sDo_, sCK_, MSBFIRST, [WRT_ENB]
CS_ = 1
Return
End