Autor Tema: Problema de Manejo del PuertoA en c18 de un PIC18f  (Leído 2555 veces)

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

Desconectado olian

  • PIC10
  • *
  • Mensajes: 1
Problema de Manejo del PuertoA en c18 de un PIC18f
« en: 06 de Octubre de 2009, 19:05:57 »
Estoy realizando un proyecto y me topé con problema en el puertoA donde puedo manejarlo bien como salida pero no como entrada.
Realicé un código simple, aparte para probar exclusivamente este puerto, y el código funciona perfecto salvo por el puertoA como entradas
Testeé que le llega tensión al pin correspondiente y además veo en el registro de funciones especiales cuando hago debugger
que no está recibiendo la señal, y que el TRISA se configura tal como se lo pido. El puerto B responde sin problema para lectura como escritura


/////////////////////////////////////////////////////////
//PORTx para Leer
//LATx   para Escribir
////////////////////////////////////////////////////////
#include "P18F4620.h"      // <pic18.h> + config bits   //
#include <stdlib.h>
#include <stdio.h>
#include <delays.h>
//

#define   Salida1         LATAbits.LATA0   
#define   Entrada1      PORTAbits.RA1
#define   Entrada2      PORTAbits.RA2   
#define   Salida2         LATAbits.LATA3   

void main()
{
TRISAbits.TRISA0 = 0;   //  is output
TRISAbits.TRISA1 = 1;   //  is input
TRISAbits.TRISA2 = 1;   //  is input
TRISAbits.TRISA3 = 0;   //  is output

      //PuertoB como Salida
LATB=0x00;
LATA=0x00;

///////Con esto seteo el puertoA como digital//////////////////
CMCON=0x07;//Desactiva comparadores////////////////////////////
ADCON0=0x00;//ADC desactivado//////////////////////////////////
ADCON1=0x06;//Entradas y salidas digitales/////////////////////
///////////////////////////////////////////////////////////////
TRISB=0x00;
TRISA=0xFF;

Salida1=1;
Salida2=1;


while(1){
      PORTB=0xFF;
      Delay10KTCYx(255);
      PORTB=0x00;
      Delay10KTCYx(255);
   
   if (Entrada1==1)
         {
            while (Entrada1==1)
            {
            PORTB=0xFF;   
            }
         }

      if (Entrada2==1)
         {
            while (Entrada2==1)
            {
            PORTB=0x00;   
            }
         }

      }
}

« Última modificación: 07 de Octubre de 2009, 08:57:19 por olian »

Desconectado OSUKARU

  • PIC10
  • *
  • Mensajes: 6
Re: Problema de Manejo del PuertoA en c18 de un PIC18f
« Respuesta #1 en: 17 de Octubre de 2009, 17:15:16 »
HOLA QUE TAL.... SEGUN TU PROBLEMA ES CONFIGURAR EL PUERTO A COMO ENTRADA Y/O SALIDA VERDAD, PUES YO LO HE INTENTADO Y ME HA RESULTADO 100% CON EXITO PERO NO PROGRAMO EN C SINO EN ASSEMBLER DEJAME HACER EL CODIGO EN C PARA SUBIRLO POR LO PRONTO TE DEJO EL CODIGO EN ASSEMBLER POR SI TE SIRVE DE ALGO O QUISIERAS PROBARLOOK... SI SABER MUCHO DE PROGRAMCION C NI ABERLO INTENTADO ANTES TE DIGO CUANDO MANDAS EL CLRF AL REGISTRO ADCON0 (SEGUSRO QUE ESTA BIEN SI CHEKAS LA HOJA DE DATOS) PARA HACER QUE TENGAS PORTA COMO I/O DIGITAL TIENES QUE DESACTIVAR CORRECTAMENTE EL ADC NO SOLO DESACTIVARLO SINO CONFIGURAR PINES Y CANALES DIGITALES ASI QUE CHEKA BIEN EL DATASHEET O MIRA LA PROGRAMACION EN .ASM Y GUIATE UN POCO Y PUES SOLO CAMBIAS TU FUNCION DECLARADA EN EL MAIN DE TU PROGRAMACION C... ASTA PRONTO NOS VEMOS.
BYE!! SALUDOS...

PT: EL PROGRAMA LO HICE EN MPLAB IDE V7.40 POR SI TE INTERESA MODIFICARLO DESDE ALLI.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Problema de Manejo del PuertoA en c18 de un PIC18f
« Respuesta #2 en: 17 de Octubre de 2009, 17:21:34 »
Osukaru: En las Reglas del Foro pedimos que no se escriba todo en mayúsculas (Punto número 8º) , entre otras cosas importantes, te ruego que las leas y las apliques a tus intervenciones en nuestro Foro. Muchas gracias.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado OSUKARU

  • PIC10
  • *
  • Mensajes: 6
Re: Problema de Manejo del PuertoA en c18 de un PIC18f
« Respuesta #3 en: 17 de Octubre de 2009, 19:37:57 »
hola que tal redpic gracias por tu observacion lo tendre en cuenta ....perdon jajajajajjajajajajaja sorry
saludos!!!