Autor Tema: Problema I/O 16F72 - CCS  (Leído 1541 veces)

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

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
Problema I/O 16F72 - CCS
« en: 24 de Octubre de 2006, 02:05:39 »
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
Andros!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema I/O 16F72 - CCS
« Respuesta #1 en: 24 de Octubre de 2006, 03:02:12 »
vale anotar que aún no he quemado ningñun pic, todo ha sido en proteus.

Esa es suficiente razón para que no te funcione bien. Yo no dejaría de probarlo en un PIC porque más de una vez nos hemos llevado sorpresas.

No obstante, alguna vez me ha pasado algo como lo que comentas y se solución con un pequeño retraso tras la activación de la salida. Prueba con un delay_us(10); detrás de cada una, por ejemplo.

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
Re: Problema I/O 16F72 - CCS
« Respuesta #2 en: 24 de Octubre de 2006, 16:58:30 »
Dajame decirte Nocturno que la experiencia no se improvisa..., he hecho lo del delay y a mejorado mucho, solo por un pequeño detallito que bastante manejable..., solo me queda comprar el pic y ensayar.

Muchas gracias.

Andros!
Andros!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema I/O 16F72 - CCS
« Respuesta #3 en: 24 de Octubre de 2006, 18:26:28 »
Me alegro que te sirviera. Con el PIC real podras eliminarlos.


 

anything