Programación General => C/C++ => Visual C++ => Mensaje iniciado por: swingt81 en Martes 12 de Septiembre de 2006, 10:16
Título: Timer Interrupt
Publicado por: swingt81 en Martes 12 de Septiembre de 2006, 10:16
Hola, estoy inetntando cambiar la frequencia del reloj para enviar un archivo wav por el puerto paralelo. para ello quiero reprogramar el reloj a la frecuancia del archivo wav. como aun no me han montado el chisme que tengo q conectar al puerto paralelo (es una empresa muy friki), para comprobar si el programa funciona bien, cada vez q llamo a la interrupcion de tiempo incremento una variable. despues en el main, cada vez q esta variable llegue a la frecuencia deseada, imprimo algo por pantalla. en teroia, si se llama a la interrupcion x veces por segundo, se imprimira algo cada segundo....vaya explicacion mas fea. el caso es q se me qeda parado en el while y no imrpime nada. os pongo el codigo a ver si me podeis decir donde esta fallando. o si se os ocurre algo mejor, pos se aceptan todas las sugerencias. ah, os lo adjunto como archivo, q si no es un toston.muchas gracias.
Título: Re: Timer Interrupt
Publicado por: Eternal Idol en Martes 12 de Septiembre de 2006, 10:46
Espero que esto solo lo quieras hacer funcionar en 9x ... el codigo es un poquito "crudo" para mi gusto ...
Código: Text
while(1){
while ( tics<fs_hz ){;}
printf("\t\tNumero de tics: %d\n",tics);
//AQUI ES DONDE CREO Q DEBERIA VENIR LA RUTINA "SendData()" CUANDO PODAMOS
//OBTENER LA VELOCIDAD NECESARIA DEL TIMER
tics=0;
}
Si fs_hz es mayor a cero jamas llegara al printf para empezar. Despues si fs_hz es cero nunca saldra del primer while ya que este es infinito y no tiene ninguna comprobacion ...
Tal vez esto se parezca mas a lo que necesitas:
Código: Text
while (tics < fs_hz)
{
printf("\t\tNumero de tics: %d\n",tics);
tics++; //dijiste "cada vez q llamo a la interrupcion de tiempo incremento una variable", hagamoslo asi esto termina alguna vez.