TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: bitpic en 22 de Julio de 2006, 06:45:06
-
Hola estoy intentando leer y escribir en una memoria EEPROM 24lc512 con el CCS C pero a partir de la direccion FF tengo problemas.
¿Alguien sabe a que puede ser debido?
¿Puede que al necesitar 16 bits para la direccion tenga algun problema?
Un saludo a todos.
Gracias
-
Si no pones el código dificilmente te podremos ayudar.
Un saludo
-
Perdon :? aqui pongo el codigo:
#include <18F258.h>
#fuses HS,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT
#use delay(clock=20000000)
#use I2C(master,sda=PIN_B1,scl=PIN_B0,SLOW,FORCE_SW)
#define LED PIN_A2
#include <24512.c>
#include <Arial9.c>
#include <gclcd.h>
void main(void)
{
int8 contrast = 63;
unsigned int8 j;
unsigned int8 i;
unsigned int8 x,y,ini_y,ini_x,fin_x,fin_y;
int dato,dato1,dato2;
EEPROM_ADDRESS direccion;
direccion = 0x48C; // direccion de memoria
init_ext_eeprom();
setup_adc_ports(NO_ANALOGS);
gclcd_init(); // Inicialización GCLCD
//Presentacion
x=10;
y=10;
gclcd_rect(5,5,125,125,3,0,BLUE);
gclcd_font();
gclcd_color(BLACK);
gclcd_gotoxy(x,y);
printf(gclcd_putc,"EEPROM");
dato = read_ext_eeprom(0x491);
gclcd_gotoxy(x,20);
printf(gclcd_putc,"%x",dato);
ini_x=10;
ini_y=30;
fin_x=ini_x+8;
fin_y=ini_y+12;
for(y=ini_y; y<fin_y; y++) // 12 filas
{
dato = read_ext_eeprom(direccion);
for(x=ini_x; x<fin_x; x++) // 8 columnas
{
If(bit_test(dato,(x-ini_x)))
gclcd_pixel(x,y,BLACK);
}
direccion++;
}
}
El mismo programa empezando de la direccion 0x00 en vez de la 0x48C me funciona bien creo que podria ser algo relacionado con que una es de 8 bits y la otra de mas.
Como lo veis?????
-
Perdon :-/ "RECTIFICO" si que me funciona he tenido un error de calculos.
Muchas gracias por contestar igualmente.
Un saludo :D
:-)