• Jueves 2 de Mayo de 2024, 16:58

Autor Tema:  Timer Interrupt  (Leído 991 veces)

swingt81

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Timer Interrupt
« en: Martes 12 de Septiembre de 2006, 10:16 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Timer Interrupt
« Respuesta #1 en: Martes 12 de Septiembre de 2006, 10:46 »
0
Espero que esto solo lo quieras hacer funcionar en 9x ... el codigo es un poquito "crudo" para mi gusto ...

Código: Text
  1.  
  2.   while(1){
  3.         while (  tics<fs_hz ){;}
  4.          
  5.           printf("\t\tNumero de tics: %d\n",tics);
  6.          
  7.           //AQUI ES DONDE CREO Q DEBERIA VENIR LA RUTINA "SendData()" CUANDO PODAMOS
  8.           //OBTENER LA VELOCIDAD NECESARIA DEL TIMER
  9.           tics=0;      
  10.      }      
  11.  
  12.  

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
  1.  
  2. while (tics < fs_hz)
  3. {
  4.   printf("\t\tNumero de tics: %d\n",tics);
  5.   tics++;       //dijiste "cada vez q llamo a la interrupcion de tiempo incremento una variable", hagamoslo asi esto termina alguna vez.
  6.   }      
  7.  
  8.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.