Skip to content

Repositorio donde encontrar y colgar problemas de la asignatura de Computadores de la Universidad Rovira i Virgili, programados en C y ARM assembler

License

Notifications You must be signed in to change notification settings

vidwise/Problemas-Computadores

Repository files navigation

Problemas-Computadores

Repositorio de soluciones a los problemas de la asignatura de Computadores de la universidad Rovira i Virgili del grado de Ingeniería Informática.

Estos problemas son ejercicios de programación en los lenguajes C y ensamblador ARM en los que se debe sincronizar uno o más periféricos con las CPUs de la Nintendo DS usando interrupciones u otros mecanismos de sincronismo.

Contenido

Enunciado Año Convocatoria Estado solución Acceso solución Programa principal RSI Función Assembler Requerimiento especial
1 Reloj de tiempo real 👁️ 📥 - - 💖 👁️ 📥 📺 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 capturar_tiempo.s 👁️ 📥 -
2 Detector de inclinación 👁️ 📥 - - 💚 👁️ 📥 📺 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 convertir_aceleracion.s 👁️ 📥 -
3 Generador de vibración 👁️ 📥 - - 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 generar_vibracion.s 👁️ 📥 -
4 Piano polifónico 👁️ 📥 - - 🖤 👁️ 📥 - - - -
5 Generador de sonido 👁️ 📥 - - 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 activar_nota.s 👁️ 📥 -
6 Micrófono 👁️ 📥 - - 🖤 👁️ 📥 - - - -
7 Servomotor 👁️ 📥 - - 🖤 👁️ 📥 - - - -
8 Display LCD 👁️ 📥 - - 💚 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 insertar_strings.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
9 Paddles 👁️ 📥 2011-12 1ª Conv. 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 detectar_sentido.s 👁️ 📥 -
10 Espirómetro 👁️ 📥 2011-12 2ª Conv. 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 convertir_punto.s 👁️ 📥 -
11 Lector de códigos de barras 👁️ 📥 2012-13 1ª Conv. 💖 👁️ 📥 📺 main.c 👁️ 📥 RSI_lector.s 👁️ 📥 normalizar_tiempo.s 👁️ 📥 -
12 Sensor de distancia 👁️ 📥 2013-14 1ª Conv. 💚 👁️ 📥 main.c 👁️ 📥 RSI_Ping.s 👁️ 📥 calcular_distancia.s 👁️ 📥 -
13 Tensiómetro 👁️ 📥 2013-14 2ª Conv. 🖤 👁️ 📥 - - - -
14 Teclado numérico 👁️ 📥 2014-15 1ª Conv. 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 descodificar_tecla.s 👁️ 📥 -
15 Display de LEDs 👁️ 📥 2014-15 2ª Conv. 🖤 👁️ 📥 - - - -
16 Propeller display 👁️ 📥 2015-16 1ª Conv. M 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 transferir_radio.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
17 Velocímetro para bicicletas 👁️ 📥 2015-16 1ª Conv. T 💛 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥, RSI_sensor.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
18 Luz LED regulada por PWM 👁️ 📥 2015-16 2ª Conv. 🖤 👁️ 📥 - - - -
19 Anemómetro electrónico 👁️ 📥 2016-17 1ª Conv. M 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 inicializar_timer0_01.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
20 Motor de tracción 👁️ 📥 2016-17 1ª Conv. T 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥, rutina principal de gestión de interrupciones intr_main.s 👁️ 📥
21 Emisor IR 👁️ 📥 2016-17 2ª Conv. 🖤 👁️ 📥 - - - -
22 Ascensor con memoria 👁️ 📥 2017-18 1ª Conv. M 💖 👁️ 📥 main.c 👁️ 📥 RSI_ascensor.s 👁️ 📥 siguiente_movimiento.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
23 Matriz 8x8 LEDs 👁️ 📥 2017-18 1ª Conv. T 💖️ 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥, RSI_timer1.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥
24 Boca artificial 👁️ 📥 2017-18 1ª Conv. E 🖤 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 siguiente_palabra.s 👁️ 📥 -
25 Disparador de cámara réflex 👁️ 📥 2017-18 2ª Conv. 💚 👁️ 📥 main.c 👁️ 📥 RSI_timer1.s 👁️ 📥, RSI_timer2.s 👁️ 📥 - -
26 Lectura morse 👁️ 📥 2018-19 1ª Conv. M 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥
27 Display numérico 4 dígitos 👁️ 📥 2018-19 1ª Conv. T 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥
28 Lector de hojas de marcas 👁️ 📥 2018-19 1ª Conv. E 💖 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥
29 Envío de datos por RS-232-E 👁️ 📥 2018-19 2ª Conv. 🖤 👁️ 📥 - - - -
30 Frecuencia cardíaca 👁️ 📥 2019-20 1ª Conv. M 🖤 👁️ 📥 - - - -
31 Joystick analógico 👁️ 📥 2019-20 1ª Conv. T 🖤 👁️ 📥 - - - -
32 Caudalímetros 👁️ 📥 2019-20 2ª Conv. 🖤 👁️ 📥 - - - -
33 Tiempo de tránsito del pulso 👁️ 📥 2020-21 1ª Conv. 🖤 👁️ 📥 - - - -
34 Combinaciones de color 👁️ 📥 2020-21 2ª Conv. ❤️ 👁️ 📥 main.c 👁️ 📥 RSI_timer0.s 👁️ 📥 - Variables globales en C main.c 👁️ 📥
35 Metrónomo digital 👁️ 📥 2021-22 1ª Conv. M 💚 👁️ 📥 main.c (provisto por el enunciado) 👁️ 📥 RSI_VBlank.s 👁️ 📥 - Expresión del cálculo de la fracción en lenguaje C main.c 👁️ 📥, razonamiento de si activar_beat() se debe llamar desde el programa principal o desde la RSI 👁️ 📥
36 Control de telescopio 👁️ 📥 2021-22 1ª Conv. T ❤️ 👁️ 📥 main.c (provisto por el enunciado) 👁️ 📥 RSI_timer1.s 👁️ 📥 - Expresión del cálculo de los divisores de frecuencia a, b y c en lenguaje C main.c 👁️ 📥
37 Escritura Morse 👁️ 📥 2021-22 2º Conv. 💛️ 👁️ 📥 📺 main.c (provisto por el enunciado) 👁️ 📥 RSI_timer0.s 👁️ 📥 - Expresión del cálculo de los divisores de frecuencia a, b y c en lenguaje C main.c 👁️ 📥
38 Teléfono Vintage 👁️ 📥 2022-23 1ª Conv. M 💚 👁️ 📥 main.c 👁️ 📥 RSI_sensor.s 👁️ 📥 capture_digit.s 👁️ 📥 Variables globales en C main.c 👁️ 📥
39 Lanzamiento con electroimanes 👁️ 📥 2022-23 1º Conv. T 🖤 👁️ 📥 - - - -
Leyenda
Leyenda solución Estado solución
🖤 Sin solución
❤️ Incompleta
🧡 Con incorrecciones
💛 Correcta
💚 Optimizada
💖 Del profesor

Leyenda Significado
📺 Link al vídeo de solución
📥 Link de descarga del enunciado

Descripción de contenidos

Cada problema tiene una carpeta en la raíz de este repositorio. El nombre de la carpeta es el número de problema, el cual puede ser encontrado para cada problema según la tabla de la sección anterior.

Dentro de la carpeta de cada problema encontramos varios elementos:

  • El enunciado del problema correspondiente en un archivo .pdf con el mismo nombre que el número de problema. Esto es útil, ya que hace el enunciado visible, descargable y accesible directamente a través de un navegador, usando la interfaz web de GitHub. Por ejemplo, el enunciado del problema 1 puede verse usando este enlace https://github.com/AleixMT/Problemas-Computadores/blob/master/Soluciones/01/01.pdf o descargarse usando este otro https://github.com/AleixMT/Problemas-Computadores/raw/master/Soluciones/01/01.pdf. Lo análogo con cualquier otro archivo en el repositorio. Un enlace para visualizar el enunciado de cada problema está vinculado al texto del nombre del problema en la tabla anterior. Haciendo clic en el nombre del problema se te redirigirá al enunciado. Haciendo clic en el emoji 📥 se descargará el enunciado.
  • Apuntes para la solución en un archivo README.md: Se usan para explicar cualquier concepto relevante de la solución.
  • Archivos de la solución. Si el problema está resuelto también podremos encontrar los archivos de la solución. Según lo que pida el problema, la solución consiste en uno o más archivos con extensión .c (si contienen código C) o .s (si contienen código ensamblador). Cada archivo .c o .s tiene el nombre de la única rutina que implementa.
  • Carpetas con soluciones alternativas: Por motivos didácticos puede existir más de una solución tal y como se define en el punto anterior. Esta solución será visible como una carpeta con el nombre alternativa_N, donde N es el número de solución, empezando a contar por 1. Esta carpeta contendrá los Archivos de la solución y los Apuntes para la solución en un archivo README.md, con las mismas características que se definen en los puntos anteriores.

Existen vídeos de las resoluciones de los problemas paso por paso. Estos pueden encontrarse pinchando en los emojis de televisión (📺) en la última columna de la tabla de la sección anterior. Cada emoji redirige a un vídeo de youtube con la resolución correspondiente.

Accesibilidad

Los códigos de las soluciones de cada problema són públicos y gratuitos. Los vídeos de las resoluciones de cada problema son de pago. Actualmente todavía se está automatizando este servicio, por lo que si quieres adquirirlos deberás contactarnos directamente y poseer una cuenta de correo electrónico de Gmail donde recibirás los vídeos.

¡Apóyanos! 💪

Si usas estas soluciones y quieres que los que vengan detrás de ti también puedan disfrutar de ellos, puedes:

  • ⭐ Dejar una estrella en este repositorio.
  • 📣 Compartir este repositorio a quien le pueda interesar.
  • 📤 Colaborar con tus propias soluciones usando una pull request.
  • 💭 Proponer optimizaciones a las soluciones usando una pull request o abriendo un nuevo issue.c
  • ☕ Hacer una pequeña donación a través de nuestro Buy Me A Coffee.

Para cualquier problema, duda, sugerencia, queja o comentario también puedes contactar con la dirección de correo electrónico batangreet@gmail.com.

Motivación

Este repositorio ha sido creado como soporte para clases de repaso. Si estás interesad@ en estos servicios puedes unirte (sin compromiso) al grupo de WhatsApp pinchando aquí o al grupo de Discord pinchando aquí.

Autoría, colaboraciones y agradecimientos

About

Repositorio donde encontrar y colgar problemas de la asignatura de Computadores de la Universidad Rovira i Virgili, programados en C y ARM assembler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published