TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Enigma en 08 de Febrero de 2008, 22:23:12
-
HOla que tal amigos, como se encuentran.... necesito una ayudita.... Estoy haciendo un programa de lectura y escritura de memoria, pero cuando lo simulo pues la memorioa me coloca un blanco cuando la mando a leer a pesar de estar mandando un 9 para que lo escriba y luego lo lea pero no lo hacve y no entiendo que es lo que estoy haciendo mal... Ya me habian advertido que trabajar con las memorias es una tarea ardua pero bueno decidi probar a ver que tal...
Aqui está el codigo:
#include <18f4550.h>
//Ajusta los valores de la palabra de configuración durante el ensamblaje:
//Protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT
#use fast_io (C)
#use fast_io (D)
#use delay(clock=4000000)
//Habilita las funciones RS232, velocidad a 9600 baudios
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use I2C(master, sda=PIN_B0, scl=PIN_B1)
int puntero=1,temp,i,opcion=0,indicador=0;
int16 r;
void escribir(void);
void registro(void);
void main(void)
{ set_tris_d(0x07); //Puerta D Salida
set_tris_c(0xFC); //Puerta C entradas
while(true)
{
printf("\f");
printf("****************************************** \n\r");
printf(" ESCOJA UNA OPCION \n\r");
printf("(1)ESCRIBIR MEMORIA \n\r");
printf("(2)VER DATOS DE LA EEPROM \n\r");
printf("****************************************** \n\r");
opcion=getc();
switch (opcion)
{
case '1':
escribir();
break;
case '2':
registro();
break;
default:
printf(" ESCOJA UNA OPCION DEL 1 AL 2 \n\r");
delay_ms(1000);
break;
}
}
}
void escribir(void)
{ i2c_start();
i2c_write(0xA0);
i2c_write(0x00);
i2c_write(0x01);
i2c_write('9');
i2c_stop();
}
void registro(void)
{
i2c_start();
i2c_write(0xA0);
i2c_write(0x00);
i2c_write(0x01);
i2c_start();
i2c_write(0xA1);
r=i2c_read();
printf(" Valor: %c ",r);
i2c_stop();
delay_ms(3000);
}
Atte: Enigma... La llanerita de Guayana :-)
-
Hola muchachos les informo una gran y estupenda noticia... :lol: Un amigo y yo resolvimos nuestro problema de la comunicación I2C de la memoria y el PIc... Resulta y acontece (es que yo no aprendo) Uno fue el Proteus que Nunca me simuló el funcionamiento de la memoria y el otro pues faltaba una instruccioón de stop de la memoria... Gracias a Dios ya nos funcionó.... Claro encontrar ese detalle nos llevó aproximadamente 14 horas averiguarlo (de 5:00 pm a 6:20am) :? Pero Todo FUNCIONA BELLOOOOOOOOOO!!!! :mrgreen:
Cada dia me convenso más de que Proteus está, más chimbo!!!!! :?
Atte: Enigma... La llaneritra de Guayana :-)
-
Hola
Te felicito, se nota que cada dia vas tomando mas experiencia con esto de los uCPIC, :-/ :-/ :-/
-
Si vale.... ya poquito a poquito voy aprediendo más de esto!!! pero ufffff todavia me falta mucho camino que recorrer!!!!!!!! :g)
Atte: Enigma... La llanerita de Guayana :-)
-
caray que llego tarde :D :D
estos carnavales :mrgreen:
que bueno que hayas conseguido el objetivo, tal vez para que veas, por si no lo viste :mrgreen:: http://www.todopic.com.ar/foros/index.php?topic=17608.0
un saludo
-
:shock:
Rayos!!! probe lo de las resistencias pullups!! y mira que si se simulo la memoria en el proteus!!! :shock: Naguara de haberlo sabido antes quizá me hubiera ahorrado muchos problemas!!!!! :? pero bueno más vale tarde que nunca!!! jejejejeje Gracias Cryn por el dato!!! :mrgreen:
Caray, no habrá manera de simular el PWM mejorado del 4550 en proteus??? :?
Atte: Enigma... La llanerita de Guayana :-)
-
No es nada Enigma :mrgreen: recuerdo siempre ese hilo cuando se trata de simulación de i2c.
ahhh eso si que no creo que se pueda, porque seguramente dice en especificaciones de proteus que no esta implementado, habria qeu ver, pero como dijiste que no daba me late qeu no va funcionar, hasta que los fabricantes del proteus lo hagan, como fue en el caso de USB, aunque es raro, pero ni modod hay que ajustarse a las cosas qeu nos dan los de proteus
-
Osea que el modo USB tampoco se simula en Proteus???? :shock:
Atte: Enigma... La llanerita de Guayana :-)
-
Sí, el USB ya se puede simular en PROTEUS, aunque con problemas, por lo menos para mí. La CPU en simulación se pone al 100% y a veces se resetea el ordenador. Algunos programas sí que he conseguido que simularan, otros no.
Programas que me han funcionado físicamente bien, en simulación algunos funcionan pero otros no.
Ojo, repito, todo esto son experiencias personales con mi ordenador. Con otros ordenadores quizá vaya mejor.
Un saludo
-
Osea que el modo USB tampoco se simula en Proteus???? :shock:
:mrgreen: jeje, no me refería a eso, sino que antes de esa versión no se podía simular el USB y ya después fue aumentado ya hora de simular si se puede, pero bueno habrá que ver tb los limites que tendrá