Bueno, la verdad es que ha sido una mañana en la que hemos aprendido bastante.
Hemos estado al principio repasando un poco todo lo de controladores y estudiando uno que nos habían proporcionado hecho (aun que era solo para los LEDs rojo y verde de la placa). Cuando hemos conseguido entenderlo todo nos hemos puesto manos a la obra para hacer nuestro propio controlador (el del ADC).
La verdad es que al final ha sido más facil de lo que pensábamos aun que hemos tenido que llamar a nuestro tutor para un par de cosas:
a) El primer problema era qué funciones del ADC meter en el controlador, y qué meter en la aplicación de usuario.
Álvaro nos ha comentado que esto está un poco en mano del programador y lo hemos hecho como nos ha parecido (aun que el nos ha dado el visto bueno).
b) El otro problema era que los los controladores solo se comunican con la aplicación mediante "char" y el registro de datos del ADC era de 12 bits, con lo cual hemos tenido que dividir el valor leido en 2 valores, y mandarselo a la aplicación en un buffer (buf[0] , buf[1]).
La aplicación a su ver tenía que reconvertirlo a un numero de 12 bits y calcular la tensión a la que equivale.
Finalmente hemos conseguido crear el controlador. Lo hemos compilado y cargado en la placa, así como el ejecutable de la aplicación.
El problema es que no nos dio tiempo a comprobar que funcionaba todo conectando un voltaje al pin del ADC, pero el programa se ejecutaba correctamente hasta el punto en el que tenía que leer el registro de datos del ADC (comprobado con printf y printk), lo cual es esperanzador.
Según nos han contado,una vez haces un driver los demás siguen el mismo esquema y todo te es más fácil, así que esperamos avanzar rápido (ya que las interrupciones estaban practicamente programadas para "micro desnudo" y solo tenemos que adaptarlas con un driver al sistema operativo ).
No hay comentarios:
Publicar un comentario