scribble

Tactics DS

Sobre nosotros Blog de desarrollo GitHub

12 Feb 2015
Práctica 2 - Acceso al Hardware

PersonalData

Hemos imprimido todos los valores que nos ofrece el struct de PersonalData. Se puede observar en la imagen que hemos escogido el color verde para los nombres y el gris para los valores. Hemos observado que en el emulador No$GBA, no están definidos algunos de los valores como el nombre y el mensaje personal pero en el emulador DeSmuMe sí que existen valores para todos.

Captura del programa PersonalData.

Captura del programa PersonalData.

Paso del tiempo

stopwatch

A continuación están las respuestas de los ejercicios planteados en el boletin.

  1. ¿Cual es la definición (prototipo) de esta función?

    void timerStart( int timer, ClockDivider divider, u16 ticks, VoidFn callback )

  2. Busque también la definición de los argumentos segundo y tercero. ClockDivider_1024 equivale a dividir el reloj por 1024 (~ 32.7284 kHz) y el 0 como parámetro para el número de ticks antes de desbordar hace que cada tick de nuestro timer equivalga a un tick de reloj.

timercallback

  1. ¿Qué significa la función que se le pasa como tercer parámetro? Calcula el valor correcto para el desbordamiento de ticks para una frecuencia dada.

  2. ¿Cual es la definición (prototpipo) de la función, el cuarto parámetro, que puede ser llamada por el timer?

    void timerCallBack()

  3. ¿Cómo se le pasa/recoge información a/desde esa función? Con la variable global play.

RealTimeClock

  1. ¿Qué dos funciones se utilizan para averiguar la hora y la fecha? Primero llama a time para que devuelve un struct con el Unix Time, después utiliza gmtime para tratar este time_t struct y devolver otro struct con el tiempo en un formato más manejable. Sus prototipos son los siguientes:

    timet time(timet t)
    struct tm gmtime(const time_t *timer)

  2. ¿Cómo inicializa este ejemplo el uso de las dos pantallas de la consola? Con las líneas #103 y #106:

    lcdMainOnTop(); // Del fichero system.h
    videoSetMode(MODE03D); // Del fichero video.h

Gestión de entrada

keyboard/keyboard_async

Proporciona un teclado con una consola donde aparece lo que se teclea.

Captura del programa keyboard\_async.

Captura del programa keyboard_async.

keyboard/keyboard_stdin

Lee del teclado como entrada estándar con un tipico programa de hola $(inserta_nombre).

Captura del programa keyboard\_stdin.

Captura del programa keyboard_stdin.

Touch_Pad/touch_area/

Indica en pantalla qué punto de los ejes x/y de la pantalla está tocando el usuario y con qué cantidad de fuerza.

Captura del programa touch\_area.

Captura del programa touch_area.

Touch_Pad/touch_look/

Proporciona en la pantalla de arriba un mundo 3D donde podemos “mirar” utilizando la pantalla de abajo deslizando el dedo.

Captura del programa touch\_look.

Captura del programa touch_look.

Touch_Pad/touch_test/

Parecido al test_area pero proporcionando más información como que botones están siendo pulsados.

Captura del programa touch\_test.

Captura del programa touch_test.

Trabajo autónomo

Mediante los ejemplos indicados no hubo gran problema para realizar el ejercicio, lo único que ha requerido refrescar un poco ha sido para mostrar contenido en la pantalla de arriba manteniendo el menú en la de abajo.

A continuación dejamos capturas del programa mostrando el valor de name y lo mismo tras darle a la función de lcdSwap.

Programa con menú.

Programa con menú.


Hasta la próxima,
Mark, Víctor y Lluís at 09:40

scribble

Sobre nosotros Blog de desarrollo GitHub