A
alejandrodaniel
Guest
come il titolo.
Se collego un esterno EEPROM 24C64 16f767 funziona bene.
nel SCL / SDA linea 2K2-up resistori pull.
il codice:
Codice:SUBPROCEDURAS''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''
PROCEDURA DI SUB Escribe_Eeprom (AS wAddress WORD DIM, DIM M AS WORD)
I2C_Start () 'Invia il segnale di start I2C
I2C_Wr ($ A6) 'Invia byte alla EEPROM esterna
I2C_Wr (HI (wAddress)) 'Invia l'alto valore dell'indirizzo EEPROM)
I2C_Wr (LO (wAddress)) 'Invia il basso valore l'indirizzo EEPROM)
I2C_Wr (M) 'Invia i dati del valore
I2C_Stop () 'Invia il segnale di stop I2C
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''' COMINCIA '''''''''''''''''''''''
Principali:
ADCON1 =% 10.001.111 'analogico PORTA.0/1/2/3, riposo digital.PORTB digitale, giustificato a destra Vref
TRISA =% 000000 'Porta come output
Trisba =% 00000000 'PORTB come output
Frolic =% 00011000 'porte di ingresso e PORTC.3 PORTC.4
PORTA =% 000.000 'Porta Setaje
PORTB =% 00000000 'Setaje PORTB
PORTC =% 00000000 'PORTC Setaje
Address_mem = 0 'Inizializzare la variabile indirizzo
vValor = 0 'Inizializzare la variabile di dati
I2C_Init (312.500) 'SSPADD = ((FOSC/CLOCK_I2C) / 4) -1
Envia_Slave:
Escribe_Eeprom (Address_mem, vValor)
INC (vValor)
INC (Address_mem)
GOTO Envia_Slave
ELSE
GOTO Envia_Slave
END IF
FINE.
Se collego un esterno EEPROM 24C64 16f767 funziona bene.
nel SCL / SDA linea 2K2-up resistori pull.
il codice:
Codice:SUBPROCEDURAS''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''
PROCEDURA DI SUB Escribe_Eeprom (AS wAddress WORD DIM, DIM M AS WORD)
I2C_Start () 'Invia il segnale di start I2C
I2C_Wr ($ A6) 'Invia byte alla EEPROM esterna
I2C_Wr (HI (wAddress)) 'Invia l'alto valore dell'indirizzo EEPROM)
I2C_Wr (LO (wAddress)) 'Invia il basso valore l'indirizzo EEPROM)
I2C_Wr (M) 'Invia i dati del valore
I2C_Stop () 'Invia il segnale di stop I2C
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''' COMINCIA '''''''''''''''''''''''
Principali:
ADCON1 =% 10.001.111 'analogico PORTA.0/1/2/3, riposo digital.PORTB digitale, giustificato a destra Vref
TRISA =% 000000 'Porta come output
Trisba =% 00000000 'PORTB come output
Frolic =% 00011000 'porte di ingresso e PORTC.3 PORTC.4
PORTA =% 000.000 'Porta Setaje
PORTB =% 00000000 'Setaje PORTB
PORTC =% 00000000 'PORTC Setaje
Address_mem = 0 'Inizializzare la variabile indirizzo
vValor = 0 'Inizializzare la variabile di dati
I2C_Init (312.500) 'SSPADD = ((FOSC/CLOCK_I2C) / 4) -1
Envia_Slave:
Escribe_Eeprom (Address_mem, vValor)
INC (vValor)
INC (Address_mem)
GOTO Envia_Slave
ELSE
GOTO Envia_Slave
END IF
FINE.