Autor Tema: Datasheet 18F4550 y memoria EEPROM.  (Leído 12409 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #15 en: 10 de Mayo de 2010, 22:25:35 »
Hola Jhozate, ¿acaso te sale 0x31, 0x32, ... ?  ;-)

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #16 en: 10 de Mayo de 2010, 22:28:58 »
no, es decir cuando por teclado  pido la clave no me reconoce
aqui en codigo
Código: [Seleccionar]
#USE DELAY(CLOCK=48000000)
#USE STANDARD_IO(A)
#USE STANDARD_IO(B)
#USE STANDARD_IO(C)
#USE STANDARD_IO(D)
#INCLUDE "FLEX_LCD420.C"
#INCLUDE <KBD.C>
//#INCLUDE <STDLIB.H>
//#ZERO_RAM
#ROM  0XF00000={'1','2','3','4'}



INT SECUENCIA=0;
INT ERRORES=0;
INT1 FLAG_CLAVE_OK=0;
VOID MAIN()
{
setup_adc_ports(NO_ANALOGS);  //NO ENTRADAS ANALOGAS
setup_adc(ADC_OFF);
SETUP_SPI(FALSE);
SETUP_PSP(PSP_DISABLED);
SETUP_COMPARATOR(NC_NC_NC_NC);
SETUP_VREF(FALSE);
port_b_pullups(TRUE);



CHAR K;
INT I;
CHAR DATA[4], CLAVE[4];

LCD_INIT();
KBD_INIT();


LCD_GOTOXY(3,1);
LCD_PUTC("***BIENVENIDO***");
LCD_GOTOXY(8,2);
LCD_PUTC("PARA");
LCD_GOTOXY(3,3);
LCD_PUTC("INGRESAR PASSWORD");
LCD_GOTOXY(3,4);
LCD_PUTC("MARQUE LA TECLA #");


DO
{
   K=KBD_GETC();
}WHILE(K!='#');


WHILE(TRUE)
{
K=KBD_GETC();
SWITCH(SECUENCIA)
{
   
   CASE 0: 
            I=0;
            PRINTF(LCD_PUTC,"\fPULSAR TECLA 1\n");
            WHILE(I<=3)
            {
               K=KBD_GETC();
               IF(K!=0)
                  {
                  DATA[I]=K;
                  I++;
                  LCD_GOTOXY(1,1);
                  PRINTF(LCD_PUTC,"PULSAR TECLA %u\n",I+1);
                  LCD_GOTOXY(I,2);
                  LCD_PUTC("*");
                  }
            }
   
            FOR(I=0;I<=3;I++)
            {
                  CLAVE[I]= READ_EEPROM(I);
            }
            IF ((DATA[0]==CLAVE[0])&&(DATA[1]==CLAVE[1])&&(DATA[2]==CLAVE[2] && DATA[3]==CLAVE[3]))
               {
               PRINTF(LCD_PUTC,"\fPUERTA ABIERTA");
               LCD_GOTOXY(1,2);
               LCD_PUTC("BIENVENIDO");
               LCD_GOTOXY(1,3);
               LCD_PUTC("A");
               LCD_GOTOXY(1,4);
               LCD_PUTC("CASA");
               OUTPUT_HIGH(PIN_A0);
               DELAY_MS(1000);
               LCD_PUTC("\f");
               SECUENCIA=1; //SIGUIENTE PASO
               }       
            ELSE
            {
                 ERRORES++;
                 IF(ERRORES==3){
                 OUTPUT_HIGH(PIN_D0);}
                 LCD_GOTOXY(1,1);
                 PRINTF(LCD_PUTC,"\fCLAVE ERRONEA");
                 LCD_GOTOXY(1,2);
                 LCD_PUTC("PUERTA CERRADA");
                 LCD_GOTOXY(1,3);
                 LCD_PUTC("NUMERO DE FALLOS:");
                 LCD_GOTOXY(1,4);
                 PRINTF(LCD_PUTC,"%u",ERRORES);
                 DELAY_MS(1500);
                 SECUENCIA=0; // VOLVER AL INICIO
            }
            BREAK;
    CASE 1: LCD_GOTOXY(1,1);
            LCD_PUTC("QUE DESEA HACER");
            LCD_GOTOXY(1,2);
            LCD_PUTC("1-PRENDER LUZ");
            LCD_GOTOXY(1,3);
            LCD_PUTC("2-APAGAR LUZ");
            IF(K=='1')
            {
            OUTPUT_HIGH(PIN_C0);
            }
            IF(K=='2')
            {
            OUTPUT_LOW(PIN_C0);
            }
            BREAK;
}//FIN DEL SWITCH
}//FIN DEL CICLO INFINITO WHILE
}//FIN DEL MAIN PRINCIPAL
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #17 en: 10 de Mayo de 2010, 22:38:47 »
Ohh pensaba que no manejarías ASCII

Checa esta línea, te faltan paréntesis...

Código: [Seleccionar]
IF ((DATA[0]==CLAVE[0])&&(DATA[1]==CLAVE[1])&&(DATA[2]==CLAVE[2] && DATA[3]==CLAVE[3]))

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #18 en: 10 de Mayo de 2010, 22:45:08 »
 :( sigue igual
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #19 en: 10 de Mayo de 2010, 23:06:24 »
Eso te pasa porque el CCS es una histérica con el tamaño por defecto de los datos a grabar en la EEPROM.

Proba poniendo:

#ROM int8 0XF00000={'1','2','3','4'}

Y que CCS se apiade de nuestras canas...
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #20 en: 10 de Mayo de 2010, 23:14:29 »
gracias santiago y bruno :-/ juraria q habia probado eso, pero ya funciona bien, ahora me surge una duda. Durante programa puedo cambiar esos datos, pero entonces cada vez que resetee el pic vuelve el 1 2 3 4?
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #21 en: 10 de Mayo de 2010, 23:17:55 »
No no. Esos serían los contenidos iniciales de la EEPROM. Si los cambiás no vuelven más a 1,2,3,4 hasta que regrabes el PIC o el programa internamente decida volverlos a 1,2,3,4(alguna rutina de reseteo general de la aplicacion que decidas sobreescriba la EEPROM con esos valores iniciales).

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Datasheet 18F4550 y memoria EEPROM.
« Respuesta #22 en: 10 de Mayo de 2010, 23:25:30 »
 :mrgreen: gracias!
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA