hola qué tal de nuevo. Estoy intentando manejar un lcd con un pic24hj... y freertos. Para ello utilizo el codigo que proporciona el ejemplo descargado del propio proyecto del freertos para el pic24h. Conecto el hardware (supongamos que está todo correcto, ya que lo he comprobado y todo parece correcto). Pero no funciona (como suele pasarme siempre con los proyectos que utilizan un lcd). Además se da la casualidad de que lo del lcd es realmente dificil de depurar. El main del programa lo pongo aquí a ver si es que me estoy equivocando en algo:
he dejado comentada la linea de xQueueSend ya que lo primero que tiene que hacer es inicializar el lcd, al margen de todo esto tengo dos dudas:
1- xLCDQueue = xStartLCDTask(); ¿se supone que con esta línea se inicializa el lcd?
2- Para escribir en el lcd ¿cuál de estas funciones se utiliza?: xQueueSend( xLCDQueue, "hola", portMAX_DELAY ); o prvLCDPutString( "www.FreeRTOS.org" );
3- ah y otra más... Supongo que este ejemplo trabaja con el oscilador interno del micro (mas que nada porque el pin donde va el cristal está ocupado con el pin RS del LCD) y necesitaba saber a qué velocidad va el oscilador interno.
a ver si con un poco de ayuda consigo ir encontrando los problemas ya que como dije antes con un lcd es muy difícil de depurar.
saludos!!
Código:
int main( void )
{
/* Configure any hardware required for this demo. */
prvSetupHardware();
/* Start the task that will control the LCD. This returns the handle
to the queue used to write text out to the task. */
xLCDQueue = xStartLCDTask();
//xQueueSend( xLCDQueue, "hola", portMAX_DELAY );
/* Finally start the scheduler. */
vTaskStartScheduler();
/* Will only reach here if there is insufficient heap available to start
the scheduler. */
return 0;
}
1- xLCDQueue = xStartLCDTask(); ¿se supone que con esta línea se inicializa el lcd?
2- Para escribir en el lcd ¿cuál de estas funciones se utiliza?: xQueueSend( xLCDQueue, "hola", portMAX_DELAY ); o prvLCDPutString( "www.FreeRTOS.org" );
3- ah y otra más... Supongo que este ejemplo trabaja con el oscilador interno del micro (mas que nada porque el pin donde va el cristal está ocupado con el pin RS del LCD) y necesitaba saber a qué velocidad va el oscilador interno.
a ver si con un poco de ayuda consigo ir encontrando los problemas ya que como dije antes con un lcd es muy difícil de depurar.
saludos!!