Como están eruditos del mundo de los pic:
Tengo un pequeño problema, el cual a mi entender es sumamente extraño..., entrando en materia trata de lo siguiente:
Cuando entro a un condicional de mi programa activo unas señales (son de lógica inversa), estas son tres (PD = 0, PR = 0, CE = 0), estas se activan cuando presiono un botón, luego valido si el botón ya ha dejado de ser presionado o si sobrepasa un tiempo máximo para desactivar las señales (PD = 1, PR = 1, CE = 1). Lo extraño es que cuando simulo en proteus solo se desactivan dos de las tres (lo verifico con LEDS que encienden), y siempre la que no enciende es la señal que corresponde a la instrucción del medio, mas específicos de la siguiente forma:
PD = 1;
CE = 1; //No enciende.
PR = 1;
o por ejemplo:
CE = 1;
PR = 1; //No enciende.
PD = 1;
De todas formas dejo el fragmento de código "encaprichado":
//=============================================================================
if (entrada_rec == 0) //OPERACION DE GRABAR!.
{
PD = 0; //Enciende el dispositivo ISD2564.
PR = 0; //Comando Grabar.
delay_ms(50); //Delay de 50ms, para que termine de encender el ISD2564,
CE = 0; //Se leen los comandos y la dirección desde la cual se va a leer.
while (portemp != 0b00111111) //Mensaje presionado?.
{
portemp = PORTA; //Se lee el puerto.
delay_ms(5); //Delay de 5 milisegundos.
tiempo_grab++;
if (tiempo_grab >= 1000) //Se evalúa si el tiempo de grabación de 5 segundos ya se cumple
{
CE = 1; //Desactiva la grabación.
PD = 1; //ISD en Stand By.
PR = 1; //Vuelve al modo por defecto.
tiempo_grab = 0; //Se resetea el tiempo de grabación.
}
}
CE = 1; //Desactiva la grabación.
PD = 1; //ISD en Stand By.
PR = 1;
}
//=============================================================================
Como información adicional los puertos están configurados como standard_io (no sé la diferencia entre esto y fast_io), otro asunto que puede influir es que como el proteus no tiene este dispositivo lo estoy simulando con un 16C72A (aunqe en el CCS ya referencié esta librería y sucede lo mismo), tambiñen cambié el código a un 16f873 y funciona, pero de forma herrática y no robusto...
, vale anotar que aún no he quemado ningñun pic, todo ha sido en proteus.
Un saludo a todos y gracias de antemano.
Andros