Autor Tema: Problema de tamaño con avrstudio4 y uso lcd  (Leído 3470 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Problema de tamaño con avrstudio4 y uso lcd
« en: 11 de Julio de 2013, 08:38:10 »
Pues estoy retomando los atmel que los toque muy poco hace unos años, y empezando con lo tipico del lcd versione este programa de un reloj solo a modo de prueba para ver el uso del marcador %, y tras realizar el programa veo que ha ocupado el 26% de la memoria del micro, previamente realice el tipico "Hello world" que ocupo solo un 7%; decir que la libreria de uso del lcd es para solo 4 bits de datos.

Lo que me resulta curioso es el aumento del uso de memoria solo por usar el indicador, al principio de compilar me salian unos warning asi que añadi la libreria de la version completa de printf. No me he fijado cuanta memoria salia antes de añadirla, cerre avrstio4 y volvi a abrir fui a Project->Configuration options y seleccionando Libraries, donde antes la añadi, no me sale en el cuadro "Link whit these objects" para ver si se puede quitar y pesa menos el programa. De todas formas he vuelto a compilarlo y me sale ocupa el mismo espacio

Código: C
  1. /******************************************************************************
  2.  * FileName:   main.c
  3.  * Purpose:    LCD - Visualización de números
  4.  * Processor:  ATmega88P
  5.  * Compiler:   AVR IAR C y AVR GCC (WinAVR)
  6.  * Author:     Shawn Johnson. http://www.cursomicros.com.
  7.  *
  8.  * Copyright (C) 2008 - 2013 Shawn Johnson. All rights reserved.
  9.  *
  10.  * License:    Se permiten el uso y la redistribución de este código con
  11.  *             modificaciones o sin ellas, siempre que se mantengan esta
  12.  *             licencia y las notas de autor y copyright de arriba.
  13.  *****************************************************************************/
  14.  
  15. #define F_CPU 12000000
  16.  
  17. #include <stdlib.h>      /* Libreria estandar de C */
  18. #include <avr/io.h>      /* Patillas E/S */
  19. #include <util/delay.h>  /* Funciones de pausa */
  20.  
  21. #include "lcd.h"
  22.  
  23. void delay_ms(unsigned int t)
  24. {
  25.     while(t--)
  26.         _delay_us(1000);
  27. }
  28.  
  29. int main(void)
  30. {
  31.     char buff[17];               // Array de 17 elementos tipo char
  32.     unsigned valor;
  33.         valor = 5;
  34.    
  35.     lcd_init();                  // Inicializar LCD
  36.  
  37.  
  38.     for(;;)    
  39.     {   lcd_gotorc(1,4);             // Cursor a fila 1 posición 4
  40.         lcd_puts("Prueba");
  41.         sprintf(buff, "El dato es:%02d",valor);  // Formatear
  42.         lcd_gotorc(2,1);                // Cursor a fila 2 posición 5
  43.         lcd_puts(buff);                 // Enviar buffer a LCD
  44.         delay_ms(900);
  45.                 lcd_clear();           // Limpiar pantalla
  46.     }
  47. }
Saludos desde Córdoba, españa

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Problema de tamaño con avrstudio4 y uso lcd
« Respuesta #1 en: 17 de Julio de 2013, 19:50:56 »
Pues sigo con lo mismo, hoy haciendo un simple programa para usar el puerto serie me ha salido que usa el 40% de la memoria flash

Código: C
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <avr/io.h>
  4. #include <avr/interrupt.h>
  5.  
  6. #define F_CPU 16000000
  7. #define USART_BAUD 9600
  8.  
  9. #include "usart.h"
  10.  
  11. int main(void)
  12. {
  13.     int numero;
  14.    
  15.     usart_init();            // Inicializar USART0 @ 9600-8N1
  16.    
  17.     puts("\n\r Da numero ");
  18.     scanf("%d", &numero);
  19.     printf("El numero es %d", numero);
  20.    
  21.     while(1);
  22. }

No se si el problema viene por las librerias, que hacen uso de las funciones stdin y stdout.

Creo que en ambos casos el problema es al usar printf y un numero, intentare mirar para convertirlos a caracteres con las funciones de c
Saludos desde Córdoba, españa

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Problema de tamaño con avrstudio4 y uso lcd
« Respuesta #2 en: 18 de Julio de 2013, 02:04:40 »
por aqui estare para ver tus avance, aunque yo no uso AVRstudio para compilar, solo lo uso para programar el micro. por las configuraciones de los Fuses. pero debo decir que el uso de LCD hay muchas aplicaciones en la Red, solo que estan en otros idiomas, muchos han cambiados las librerias a su gustos, siendo asi, a veces da problema, lo que te recomiendo ante de usarla leerte la libreria punto por punto, asi podra dominarla mejor.


Saludos

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Problema de tamaño con avrstudio4 y uso lcd
« Respuesta #3 en: 18 de Julio de 2013, 06:08:29 »
Muchas gracias, la verdad que ayer tras postear estuve revisando los codigos que hice con el 18f2550 y ccs, y teniendo en cuenta que tiene 32k en lugar de los 8k del atmega88, el uso de memoria puede que sea parejo.

Las librerias son sencillas, creo que el aumento de tamaño viene por el uso de las funciones stdin,stdout para poder usarlos en printf y scanf, probare a cambiar el scanf por un getchar y despues convertirlo a entero, o si solo va del 0-9  restar '0'.
Saludos desde Córdoba, españa