Problema 3: Generador de Vibración
Problema 3: Generador de Vibración
Problema 3: Generador de Vibración
Por otro lado, hay que implementar la rutina generar_vibracion(short frec) , cuya
función será iniciar la vibración a la frecuencia especificada por parámetro, en Hercios. Si la
frecuencia es cero, se parará la vibración.
El hardware para generar la vibración consiste en un registro REG_RUMBLE. Cada vez que
se cambia el valor del bit 1 de este registro se produce un movimiento del dispositivo vibrador.
Por lo tanto, para generar vibración a una determinada frecuencia hay que cambiar dicho bit
a la frecuencia requerida.
8
Colección de problemas Computadores (URV)
Para generar la vibración a la frecuencia indicada utilizaremos el timer 0, con los registros:
0400 0100 TIMER0_DATA Valor del contador / carga del divisor de frecuencia
0400 0102 TIMER0_CR Registro de control del timer 0
Para realizar la división se llamará a una función de la BIOS con la instrucción de lenguaje
máquina swi 9, pasando el numerador en R0 y el denominador en R1; la función devuelve
el cociente (con signo) en R0, el resto en R1 y el valor absoluto del cociente en R3.
Se pide:
Programa principal en C, RSI del timer 0 y rutina generar_vibracion() en ensamblador.