hola a todos
quería ver si podrían ayudarme en un problema que tengo en la transmisión de caracteres a una eeprom externa (24LC512) por I2C.
Simulandolo en proteus (que por cierto adjunto mi simulacion en el .rar viene el .dsn de proteus) me muestra en la lcd un cuadro negro como caracter en lugar del mío.
no sé si el error es al enviarlo y guardarlo en la eeprom o al recibirlo. ¿Se pueden enviar datos tipo char a la memoria externa?¿qué tipos de datos se pueden guardan en la eeprom y como?
la verdad es que ni siquiera se bien como son las sentencias de envio y lectura i2c_write() ni i2c_read() ni como usarlas bien
los delay los puse para asegurarme que los errores no eran por falta de tiempo para responder o escribir o leer por parte de la eeprom externa
mi codigo esta compilado en el pswhd v.4.088
gracias de antemano
quería ver si podrían ayudarme en un problema que tengo en la transmisión de caracteres a una eeprom externa (24LC512) por I2C.
Simulandolo en proteus (que por cierto adjunto mi simulacion en el .rar viene el .dsn de proteus) me muestra en la lcd un cuadro negro como caracter en lugar del mío.
no sé si el error es al enviarlo y guardarlo en la eeprom o al recibirlo. ¿Se pueden enviar datos tipo char a la memoria externa?¿qué tipos de datos se pueden guardan en la eeprom y como?
la verdad es que ni siquiera se bien como son las sentencias de envio y lectura i2c_write() ni i2c_read() ni como usarlas bien
los delay los puse para asegurarme que los errores no eran por falta de tiempo para responder o escribir o leer por parte de la eeprom externa
mi codigo esta compilado en el pswhd v.4.088
gracias de antemano
Código:
#include <18F4550.h>
#use delay(clock=48000000)
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use i2c(master,FORCE_HW, sda=PIN_C7, scl=PIN_C6)
#define LCD_DATA_PORT getenv("SFRORTD")
#include <lcd.c>
void main(){
char str = 'a',str2;
lcd_init();
i2c_start();
i2c_write(0x00);
delay_ms(100);
i2c_write(str);
i2c_stop();
delay_ms(100);
i2c_start();
delay_ms(100);
i2c_write(0x00);
delay_ms(100);
str2=i2c_read();
lcd_putc(str2);
}