Autor Tema: Escribiendo en I2C  (Leído 1785 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Escribiendo en I2C
« en: 14 de Noviembre de 2009, 17:40:23 »
Bueno tengo un problemita no logro hacer que los datos que envio por rs232 se guarden en la memoria

Código: C
  1. #include <18f4550.h>
  2. #fuses NOWDT,NOPROTECT,NOLVP,INTRC_IO
  3. #use delay (clock= 8000000)  
  4. #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
  5. #define EEPROM_SDA PIN_B0        
  6. #define EEPROM_SCL PIN_B1        
  7. #include <24256.c>
  8. #include "lcd.c"
  9.  
  10. void main()
  11. {  char entrada,dato,direccion;
  12.     lcd_init();
  13.     init_ext_eeprom();
  14.     for(;;){
  15.     entrada=getchar();
  16.    
  17.     if(entrada=='E')
  18.          {
  19.    lcd_putc("~ Escribiendo en...\n24LC256\n");
  20.    delay_ms(500);
  21.    direccion=getchar();
  22.    dato=getchar();
  23.    write_ext_eeprom(direccion,dato);
  24.          }
  25.        }
  26.        
  27. }
Intente poner una matriz en Dato pero del mimo modo me compila pero al simular simplementye no hay respuesta

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Escribiendo en I2C
« Respuesta #1 en: 14 de Noviembre de 2009, 17:43:51 »
Colocaste las resistencias pull-up?
No contesto mensajes privados, las consultas en el foro

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Escribiendo en I2C
« Respuesta #2 en: 14 de Noviembre de 2009, 17:55:00 »
ya le agrege las resistencias y funciono en la simulacion, ahora otra pregunta la direccion debo ponerla en int o mantenerla en Char

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Escribiendo en I2C
« Respuesta #3 en: 14 de Noviembre de 2009, 18:09:16 »
Código: C
  1. #include <18f4550.h>
  2. #fuses NOWDT,NOPROTECT,NOLVP,INTRC_IO
  3. #use delay (clock= 8000000)  
  4. #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
  5. #define EEPROM_SDA PIN_B0        
  6. #define EEPROM_SCL PIN_B1        
  7. #include <24256.c>
  8. #include "lcd.c"
  9.  
  10. void main()
  11. {  char entrada,dato;
  12.    int direccion;
  13.     lcd_init();
  14.     init_ext_eeprom();
  15.     for(;;){
  16.     entrada=getchar();
  17.    
  18.     if(entrada=='E')
  19.          {
  20.    lcd_putc("\f~ Escribiendo en...\n24LC256\n");
  21.    direccion=getchar();
  22.    dato=getchar();
  23.    delay_ms(500);
  24.    write_ext_eeprom(direccion,dato);
  25.             }
  26.             else
  27.    if(entrada=='L')
  28.          {
  29.    lcd_putc("\f~ Leyendo en...\n24LC256\n");
  30.    delay_ms(500);
  31.    direccion=getchar();
  32.    printf(lcd_putc,"\f\n %d ~ %s",direccion,read_ext_eeprom(direccion));
  33.    printf("\f\n %d ~ %s",direccion,read_ext_eeprom(direccion));
  34.             }
  35.  
  36.        }
  37.        
  38. }
Al intentar leer lo que esta en la memoria simplemente no me manda lo que supuestamente escribi
hay forma de que lo que meta lo pueda meter dentro de una bariable
char Menu[]="mensaje "

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Escribiendo en I2C
« Respuesta #4 en: 14 de Noviembre de 2009, 18:50:08 »
Necesitas guardar en una variable lo que recibiste de la memoria? Si es el caso lo haces así:

Código: C
  1. int Letra;
  2.  
  3. Letra=read_ext_eeprom(direccion);

No se si era eso  :?

char en una variable de 8 bit sin signo, luego int es de 8 bits, pero que por default es sin signo, y para signarla solo hay que agregar el pre-modificador signed. (signed int)
Entonces para la variable dirección da lo mismo usar int o char.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Escribiendo en I2C
« Respuesta #5 en: 14 de Noviembre de 2009, 19:01:47 »
hay un problemita cuando Escribo no me saca del ciclo si preciono L no me manda a la parte de lectura

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Escribiendo en I2C
« Respuesta #6 en: 14 de Noviembre de 2009, 23:30:03 »
Luego de escribir en la memoria externa hay que esperar unos 5mS para que se complete la escritura.

Saludos
El papel lo aguanta todo


 

anything