Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: chipo en 8 Febrero 2014, 10:01



Título: Encencer led en c18 funciona en proteus pero no enciende en el protoboard
Publicado por: chipo en 8 Febrero 2014, 10:01
Hola. Estoy iniciándome en la programación de pics (18f4550) en c18 compiler y luego de ver que el circuito funcionaba en proteus, armé todo en el protoboard y no funciona. Lo medí con el tester y me da bien la medición. No sé la verdad qué podría ser. Les dejo una foto de cómo está montado el circuito y además también el código. Ojalá alguien me podría ayudar porque la verdad que si esto no funciona no sé como seguir avanzado.
Gracias!.

El link a la foto es:
http://subefotos.com/ver/?5f44fb6a5aabfb43eea9270a1bcb3d5bo.png (http://subefotos.com/ver/?5f44fb6a5aabfb43eea9270a1bcb3d5bo.png)

Y el código:

#pragma config PLLDIV = 5
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2

#pragma config FOSC = INTOSCIO_EC

#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOR = OFF
#pragma config BORV = 3
#pragma config VREGEN = OFF
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config CCP2MX = ON
#pragma config PBADEN = OFF
#pragma config LPT1OSC = OFF
#pragma config MCLRE = OFF
#pragma config STVREN = ON
#pragma config LVP = OFF
#pragma config ICPRT = OFF
#pragma config XINST = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF
#pragma config WRTC = OFF
#pragma config WRTB = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF
#pragma config EBTRB = OFF

#include<p18f4550.h>

void delay();

void main()
{
    //Configuración de puertos como digitales
    ADCON1 = 0X0F;
    PORTB = 0;
    TRISB = 0;
    LATB = 0;
    
    while(1)
    {
        LATBbits.LATB0 = 1;
        delay();
        LATBbits.LATB0 = 0;
        delay();
    }
}

void delay()
{
    int i,j;
    for( i = 0; i < 1000 ; i++)
    {
        for( j = 0; j < 2; j++ ){
            //delay}
        }
    }
}


Título: Re: Encencer led en c18 funciona en proteus pero no enciende en el protoboard
Publicado por: xiruko en 8 Febrero 2014, 14:03
Hola,

he mirado el datasheet (http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf) y ese no es el pin RB0. Pon la muesca del chip hacia arriba (tal y como está en la foto), y el pin 1 es el que te queda arriba a la izquierda, bajando llegas hasta el 20, el de abajo a la derecha sería el 21, y subiendo llegas al 40 que es el de arriba a la derecha.

También te falta poner el MCLR a 1 para que no se te vaya reiniciando el PIC.

Te dejo este documento (http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf) que muestra las librerías del compilador C18. Ahí tienes todas las rutinas para el ADC, Timers, Compardores, etc. Además de rutinas para Delays para que así no tengas que implementar las tuyas.

Saludos.


Título: Re: Encencer led en c18 funciona en proteus pero no enciende en el protoboard
Publicado por: chipo en 8 Febrero 2014, 20:58
Hola xiruko muchas gracias, por fin funciona, tenés razón, había visto mal el datasheet del pic, por suerte no se quemó las veces que lo conecté mal.
Estoy muy agradecido, muy copado de tu parte.