Buen dia tengan todos, estoy tratasndo de hacer un juego con luces LEDs todo me funciona como quiero en el codigo, solo hay un detalle y no he podido resolverlo. la EEPROM interna del PIC solo puedo leer 0 y 1 como variables gurdadas. no he podido leer valores 2,3,4,5,6,7 no entiendo porque.
VERIFIQUE QUE ESTUVIERA GUARDANDO EL VALOR 2,3 LEEYENDO LA EEPROM DESPUES DE ACTIVARLO UNA VEZ.
lo codifique en mikroC y tambien en XC8 con el mismo resultado.
aca le coloco el codigo, gracias de antemano.
#include <built_in.h>
unsigned short n,Nciclo,r;
unsigned short address;
void interrupt()
{
delay_ms(100);
switch (n)
{
case 0:n=1; Nciclo=1;break;
case 1:n=2; Nciclo=2;break;
case 2:n=3; Nciclo=3;break;
case 3:n=0; Nciclo=0;break;
}
r=n;
INTF_bit=0;
}
void Inicializar()
{
OSCCAL = 0b100000;
TRISIO = 0b000100;
CMCON = 0b00000111;
INTCON= 0b11010000;
}
void main() {
//EEPROM_write(0x25,0x02);
Inicializar();
delay_ms(10000);
(n)=(EEPROM_Read(0x25))&&0x0F; //// ACA TENGO EL PROBLEMA ////
delay_ms(500);
while(1)
{
switch (Nciclo){
case 1:eeprom_write(0x25,1);delay_ms(100);Nciclo=4;break;
case 2:eeprom_write(0x25,2);delay_ms(150);Nciclo=4;break;
case 3:eeprom_write(0x25,3);delay_ms(150);Nciclo=4;break;
case 0:eeprom_write(0x25,0);delay_ms(150);Nciclo=4;break;
}
r=n;
switch (n){
case 0:
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
break;
case 1:
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(5);
GP5_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(5);
GP5_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(5);
GP5_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(5);
GP5_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(5);
GP5_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(5);
GP5_bit=0;
delay_ms(100);
break;
case 2:
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
GP4_bit=1;
delay_ms(100);
GP4_bit=0;
delay_ms(75);
break;
case 3:
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
GP5_bit=1;
delay_ms(100);
GP5_bit=0;
delay_ms(75);
break;
}
}
}