te explico, el programa corre bien cuando se pulsa el botón y sale números al azar, cuando sale el 6
sale la palabra felicidades en la pantalla LCD, con su respectivo sonido del buzzer, hasta allí todo correcto. solo que la palabra felicidades y el pitido continua y no se borra para continuar con el juego
la palabra de felicidades y el pitido debe Durar solo 3 segundo, y luego desaparecer para continuar con el juego este es el codigo, algo esta mal, por favor ayúdame en esto....gracias
codigo:
#include <16f648a.h> //pic a utilizar
#define RAND_MAX 6 //De 0 a 5
#include <STDLIB.H> //libreria donde esta la funcion rand();
#use delay (clock=4000000) //Fosc=4Mhz
#use standard_io(B)
#use fast_io(A)
#define use_portb_lcd TRUE //definir portb lcd
#include<lcd.c> //libreria manejo lcd
///PROGRAMA
void main(void)
{
char num=0; //variable almacena numero aleatorio
set_tris_a(0xFF); //porta como entrada
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
lcd_init(); //inicializa lcd
srand(7); //maximo hasta 6
lcd_putc("Dado Electronico\nPulse boton...");
while(input(PIN_A0)){} //Se mantiene cabecera hasta que se pulse el boton
lcd_putc("\fDado:\nIntenta otra vez"); // mensaje de texto
lcd_gotoxy(7,1); //Coordenadas dond se muestra el numero
for(;

{ //bucle...
if(!input(PIN_A0)) //¿se ha pulsado el boton?
{
do{ //SI -> elimina...
num=rand() + 1; //genera numero pseudo-aleatorio
}while(!input(PIN_A0)); //...rebotes
if(num==6)
{
int j;
printf(lcd_putc,"");
lcd_putc("\fDado: un 6\n Felicidades!"); // mensaje de texto
lcd_gotoxy(7,1);
for(j=0;j<8;j++) // Repito 8 veces, cada vuelta es de 100ms, por lo que 30*100ms = 3s
{
output_high(PIN_B3); //activa buzzer(beep)
delay_ms(50); //tiempo de escucha del beep
output_low(PIN_B3); //desactiva buzzer(beep)
delay_ms(50); //tiempo de escucha del beep
}
}
else
{
printf(lcd_putc,"%d",num); //muestra por lcd numero
lcd_putc("\b"); //retrocede un espacio
output_high(PIN_B3); //activa buzzer(beep)
delay_ms(50); //tiempo de escucha del beep
output_low(PIN_B3); //desactiva buzzer(beep)
}
}
} //...infinito
}