TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: leeyugioh en 30 de Enero de 2014, 20:24:28
-
Hola , soy nuevo en el foro. estoy cursando estudios y tengo un problema. ese codigo para el pic 16f877a no me corre en el proteus. no se , si es que tengo mal la programacion , pero el pic compiler no me dice errores.. pero igual no pasa nada =( el display le doy al pulsador y no pasa nada...
ESTE ES EL CODIGO que logre armar pero no entiendo porq no hace nada.. nada la simulacion el proteus.
#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay (clock=20000000)
#byte puerto_a=05
#use fast_io(b)
#BYTE puerto_b= 0x06
int dado [6]={0x06,0x5b,0x4f,0x66,0x6d,0x7d};
void lanzo_dado(void);
void main(void)
{
set_tris_e(0x01);
set_tris_b(0x00);
disable_interrupts(GLOBAL);
do{
puerto_b= 0;
if(input(PIN_A0)){
lanzo_dado();
}
}while(TRUE);
}
void lanzo_dado(void) {
char i=0;
do{
i++;
if (i == 7) {
i = 1;
}
}while(input(PIN_A0));
delay_ms(50);
puerto_b= dado ;
delay_ms(2000);
}
no si es que me falta algo. Gracias de ante mano
-
Que tal leeyugioh.
Coloca:
void lanzo_dado(void) {
int i=0;
do{
i++;
if (i == 7) {
i = 1;
}
}while(input(PIN_A0));
delay_ms(50);
puerto_b = dado [ i ];
delay_ms(2000);
}
-
Hola. Aquí te dejo otro ejemplo para usar un display 7 segmentos. Ademas todo el codigo esta simulado en proteus y tiene un video tutorial en youtube que explica las lineas del código.
Manejo de display 7 segmentos con pic. Curso detallado. (http://controlautomaticoeducacion.com/6-manejo-de-display-7-segmentos-y-antirebote/)
-
A pesar que es viejo el tema:
Yo hubiera sacado el int i = 0 o char i = 0 fuera como una variable global
Sin contar que hubiera puesto ese dealy_ms(50) al comienzo de la funcion como un "antirebote"