Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/05/2014 #1


Problema con arranque de pic 18f2550
buenas tardes, mi problema es el siguiente:
estoy trabajando en un propeller clock en el cual ya he avanzado bastante, incluso las imagenes se adaptan a la velocidad, es decir no varia su tamaño al cambiar la velocidad de giro, el problema radica en que al momento en que quiero colocar en marcha el programa el pic demora en arrancar, entonces tengo que conectar y desconectar varias veces la alimentacion hasta que observe un parpadeo en los leds, es entonces cuando se que el pic ya responde, y de esa forma comienza a correr el programa sin ningun problema, en el caso en que conecto la alimentacion y no percibo el parpadeo de los leds, este demora mucho tiempo en encender los leds y comienza a graficar solo pero demora una eternidad.
Espero haber sido lo bastante claro, de antemano gracias.

Aqui les dejo mi codigo:
Código:
#include <18f2550.h>
#include <stdlib.h>
#fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#use delay(clock =10M)


#byte   pta = 0xf80
#byte   ptb = 0xf81
#byte   ptc = 0xf82


#BIT       led1        = ptb.7
#BIT       led2        = ptb.6
#BIT       led3        = ptb.5
#BIT       led4        = ptb.4
#BIT       led5        = ptb.3
#BIT       led6        = ptb.2
#BIT       led7        = ptb.1
#BIT       led8        = ptc.0
#BIT       led9        = ptc.1
#BIT       led10       = pta.0
#BIT       led11       = ptc.2
#BIT       led12       = pta.2
#BIT       led13       = pta.1
#BIT       led14       = ptc.6
#BIT       led15       = ptc.7

int16 p;
int16 c=0;
int16 d;
int16 h=0;
int16 b,f,distancia;
int16 tiempo=2000;
int16 v;
int16 a;
int1 bandera=0;

#int_ext
void ext_isr(void)
{

c=1;
h++;

tiempo=b;

b=0;
}


#int_TIMER1
void  TIMER1_isr(void)
{

b++;

//led2=!led2;

set_timer1(65223);

}



void letraE(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(d);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}


void letraL(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=1;
delay_ms(d);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void letraC(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(d);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraT(){

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraR(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=1;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(2*p);

led1=1;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
led9=1;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=0;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void letraO(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(d);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraN(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=1;
led5=1;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=1;
led11=1;
led12=0;
led13=0;
led14=0;
delay_ms(p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraI(){

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(2*p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(2*p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraA(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(d);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraP(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(d);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}

void letraD(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=1;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=1;
delay_ms(2*p);

led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=1;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void letraK(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=1;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=1;
led6=1;
led7=0;
led8=0;
led9=0;
led10=1;
led11=1;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=1;
led13=1;
led14=0;
led15=0;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void letraM(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=1;
led5=1;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=1;
led5=1;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void slash(){

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=1;
led12=1;
led13=1;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=1;
led10=1;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void letraH(){

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
led15=1;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
delay_ms(d);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
led15=0;
}

void figura1(){

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
delay_ms(3*p);

led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;

}

void figura2(){

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
delay_ms(2*p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
}

void figura3(){

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=0;
delay_ms(p);

led1=1;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
delay_ms(p);

led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
}

void figura4(){

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=0;
delay_ms(p);

led1=1;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
delay_ms(3*p);

led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
led8=0;
delay_ms(p);

led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
}

void NE1(){


//numero 2

led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
delay_ms(p);


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(10*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);


//letra N

led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(4*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
delay_ms(p);


led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(4*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);

//letra E


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(p);


led1=0;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=0;
delay_ms(p);


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=1;
led8=1;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(12*p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);

//numero 1


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
}


void johan(){

//letra N

led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(4*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
delay_ms(p);


led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=1;
led14=1;
delay_ms(4*p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=1;
delay_ms(p);


led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
led8=1;
led9=1;
led10=1;
led11=1;
led12=1;
led13=1;
led14=0;
delay_ms(p);


led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
led9=0;
led10=0;
led11=0;
led12=0;
led13=0;
led14=0;
delay_ms(2*p);



//letra A

led14=0;
led13=0;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=1;
led13=1;
led12=0;
led11=0;
led10=0;
led9=0;
led8=1;
led7=1;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(10*p);

led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=0;
led13=0;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(2*p);

//letra H


led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);

led14=1;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=1;
led7=1;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(10*p);

led14=1;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
delay_ms(p);

led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(2*p);

//letra O

led14=0;
led13=0;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=0;
led1=0;
delay_ms(p);

led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);

led14=1;
led13=1;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=1;
led1=1;
delay_ms(10*p);

led14=0;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);

led14=0;
led13=0;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=0;
led1=0;
delay_ms(p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(2*p);

//letra J

led14=1;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=0;
led1=0;
delay_ms(p);

led14=1;
led13=1;
led12=1;
led11=1;
led10=1;
led9=1;
led8=1;
led7=1;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=1;
led1=1;
delay_ms(10*p);

led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=0;
delay_ms(p);


led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=1;
led5=1;
led4=1;
led3=1;
led2=0;
led1=0;
delay_ms(p);


led14=0;
led13=0;
led12=0;
led11=0;
led10=0;
led9=0;
led8=0;
led7=0;
led6=0;
led5=0;
led4=0;
led3=0;
led2=0;
led1=0;
delay_ms(2*p);

}




void main()
{

set_tris_a(0x00);
set_tris_b(0x01);
set_tris_c(0x00);
pta=0x00;
ptb=0x00;
ptc=0x00;

setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
enable_interrupts(INT_ext);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);

set_timer1(65223);

do{
if(c==1){

if(h&gt;0 &amp;&amp; h&lt;10){
delay_ms(a);

letraK();
delay_ms(2*p);
letraI();
delay_ms(2*p);
letraA();
delay_ms(2*p);
letraR();
delay_ms(2*p);
letraA();
delay_ms(40*p);

johan();
delay_ms(10*p);



h=0;

}

c=0;

v=(2000/tiempo);

p=(200/v);

d=4*p;

a=5*p;



}

}while(true);
...
02/05/2014 #2

Avatar de Daniel Meza

Hola

En ésta línea

Código:
fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
Quita el fuse de NOWRT, ese es un temporizador interno del PIC que "resetea" al PIC al energizar para que comience a ejecutar el programa desde la dirección 0.
02/05/2014 #3
Moderador

Avatar de D@rkbytes

jzerox5 dijo: Ver Mensaje
el problema radica en que al momento en que quiero colocar en marcha el programa el pic demora en arrancar, entonces tengo que conectar y desconectar varias veces la alimentación hasta que observe un parpadeo en los leds, es entonces cuando se que el pic ya responde, y de esa forma comienza a correr el programa sin ningún problema, en el caso en que conecto la alimentación y no percibo el parpadeo de los leds, este demora mucho tiempo en encender los leds y comienza a graficar solo pero demora una eternidad.
El problema que tienes es de configuración en la frecuencia de trabajo del oscilador.
Esa palabra de configuración seleccionando una frecuencia de 10MHz, no es correcta.
Lo mejor que podrías hacer es aprovechar que en ese PIC puedes elevar la frecuencia de trabajo del CPU a 48MHz.
Eso lo puedes lograr con cristales de 4, 8, 12, 16, 20, 24 y 40MHz.
Pero una configuración con cristal de 10MHz no está disponible para ese PIC.

Nota:
Si quitas el cristal verás que el programa funciona debido a que entra en funcionamiento Fail Safe Clock Monitor.
Eso activa automáticamente el oscilador interno con la configuración que tome OSCCON en el Power On Reset.

Si quieres ver las palabras de configuración para elevar la frecuencia a 48MHz, mira por aquí:
Son para otro lenguaje de programación pero te puedes dar una idea.
Si requieres saber cual necesitas en PICC conforme al cristal que tengas disponible, te puedo decir como es.

Saludos.

---------- Actualizado después de 40 minutos ----------

Daniel Meza dijo: Ver Mensaje
Código:
fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
Quita el fuse de NOWRT, ese es un temporizador interno del PIC que "resetea" al PIC al energizar para que comience a ejecutar el programa desde la dirección 0.
Nop, te debes estar confundiendo con el fuse PWRTEN (Power-up Timer Enable bit)
El fuse/s WRT es el que hace referencia a la protección de escritura en ciertos bloques de memoria.
Y estos fuses están desligados a los fuses BORV0, BORV1, BOREN0 y BOREN1

En este PIC se usan varios fuses WRT para proteger la memoria por secciones independientes:
bit 7-4 Unimplemented: Read as ‘0’

bit 3 WRT3: Write Protection bit
1 = Block 3 (006000-007FFFh) is not write-protected
0 = Block 3 (006000-007FFFh) is write-protected

bit 2 WRT2: Write Protection bit
1 = Block 2 (004000-005FFFh) is not write-protected
0 = Block 2 (004000-005FFFh) is write-protected

bit 1 WRT1: Write Protection bit
1 = Block 1 (002000-003FFFh) is not write-protected
0 = Block 1 (002000-003FFFh) is write-protected

bit 0 WRT0: Write Protection bit
1 = Block 0 (000800-001FFFh) or (001000-001FFFh) is not write-protected
0 = Block 0 (000800-001FFFh) or (001000-001FFFh) is write-protected
03/05/2014 #4

Avatar de Daniel Meza

Muy cierto D@rkbytes, tremenda mi confusión. Bueno aún así sería buena idea que activara el fuse PWRTEN que no lo veo en e código
22/07/2014 #5


D@rkbytes dijo:
Nota:
Si quitas el cristal verás que el programa funciona debido a que entra en funcionamiento Fail Safe Clock Monitor.
Eso activa automáticamente el oscilador interno con la configuración que tome OSCCON en el Power On Reset.

Si quieres ver las palabras de configuración para elevar la frecuencia a 48MHz, mira por aquí:
Son para otro lenguaje de programación pero te puedes dar una idea.
Si requieres saber cual necesitas en PICC conforme al cristal que tengas disponible, te puedo decir como es.
se muy poco de programacion pero seria de gran ayuda si me explicaras como utilizar el oscilador interno de mi pic.
22/07/2014 #6

Avatar de Edwar09

Hola, para usar el oscilador interno yo lo hago de esta forma:

A tu código de arriba solo cambias el fuse HS por el fuse INTRC

y en la parte donde pones la velocidad

#use delay(clock=velocidad) <---- Esta parte xD

Le tenes que poner alguna de las velocidades validas para el oscilador interno de este pic
y esas velocidades son :


8 MHz, 4 MHz, 2 MHz, 1 MHz, 500 kHz, 250 kHz, 125 kHz y 31 kHz.

Espero te sirva :P
25/07/2014 #7


Daniel Meza dijo: Ver Mensaje
Muy cierto D@rkbytes, tremenda mi confusión. Bueno aún así sería buena idea que activara el fuse PWRTEN que no lo veo en e código
Por cierto quise colocar el fuse PWRTEN pero al momento de compilarlo me aparece error.
25/07/2014 #8
Moderador

Avatar de D@rkbytes

¿Qué error es el que te aparece?
En el código que pusiste en el mensaje #1 lo tienes puesto y no tenías ese problema.
Código:
#fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
26/07/2014 #9


D@rkbytes dijo: Ver Mensaje
¿Qué error es el que te aparece?
En el código que pusiste en el mensaje #1 lo tienes puesto y no tenías ese problema.
Código:
#fuses HS,NOWDT,PUT,NODEBUG,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
acaso el PUT es el mismo PWRTEN?, y pues el error que me aparece al momento de compilar es que no existe esa variable
26/07/2014 #10
Moderador

Avatar de D@rkbytes

jzerox5 dijo: Ver Mensaje
acaso el PUT es el mismo PWRTEN?, y pues el error que me aparece al momento de compilar es que no existe esa variable
Así es, el fuse PWRTEN (Power Timer Enable Bit) es el mismo que PUT en C de CCS
Cada entorno de programación tiene diferentes nombres para los fuses.
El único entorno de programación que usa los nombres originales es el MPLAB cuando se programa en ensamblador.

Así que, por eso te aparece ese error, porque de la forma que lo escribiste no lo reconoce.

Tampoco es necesario que los coloques todos porque el compilador establece algunos por defecto.
También depende de la forma en que escribas la palabra de configuración.
Si no la escribes establece algunos por defecto y eso depende de cada PIC.
Si escribes por ejemplo esto:
#use delay(crystal = 4MHz) el compilador asume oscilador a cristal (XT)
#use delay(crystal = 10MHz) el compilador asume oscilador a cristal (HS)
#use delay(internal = 4MHz) oscilador interno y la frecuencia depende del tipo de PIC.

Al utilizar ésto el compilador también establece otros fuses y es conveniente ver el archivo *.hex para saber cuales se deben poner o quitar en la declaración #fuses.

En los PIC18 con módulo USB la cosa cambia si se desea usar el preescaler y el postescaler.

Por aquí en el Foro existe mucha información sobre esto, es cuestión de que busques un poco.

Suerte.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.