Título: Problema al incluir una librería en code blocks Publicado por: jose_j en 28 Diciembre 2017, 15:06 pm Hola gente, soy nuevo en el foro , espero que me puedan ayudar,ahh también soy nuevo en la programación , el tema es que estoy programando los micros atmel el atmega328p lo hago el Linux con code blocks, para el tema de entradas y salida se incluye la librería io, include <avr/io.h>, ahora necesito incluir la librería para la comunicación serial la cual es include<avr/iom328p.h>, pero me da error al compilar, me sale una pestaña de iom328p.h marcando el error que dice # error "include <avr/io.h> instead of this file", y en un comentario (que está en esa pestaña que se abrió) dice : this file should only be included from <avr/io.h>, never directly. O sea dice que este archivo sólo debe incluirse desde <avr/io.h>, nunca directamente. Ese es el problema, como lo incluyo desde avr/io.h? Gracias y Saludos.
Título: Re: Problema al incluir una librería en code blocks Publicado por: Gallu en 28 Diciembre 2017, 15:56 pm Tiene pinta de que las dependencias se están pegando de ostias, si te fijas el mensaje parece claro
Código
Es posible que tal y como indica el mensaje, si incluyes io.h ya puedas acceder a las funciones de iom328p.h ?? Desde luego, si revisas el fuente de io.h te encuentras algo como esto: Código
Espero que te sirva. Saludos Título: Re: Problema al incluir una librería en code blocks Publicado por: jose_j en 28 Diciembre 2017, 18:27 pm Tiene pinta de que las dependencias se están pegando de ostias, si te fijas el mensaje parece claro gracias por tu respuesta, y vi la fuente de io.h y si, esta lo que decis, pero al incluir solo la io.h no puedo usar los registro de la comunicación serial, cuando incluyo el include<avr/iom328p.h> , el code blocks me va completando los nombres de los registros, o sea me da nombre de los registro que puedo usar,cosa que si uso solo el io.h me da error, no se si me explico bien, un ejemploCódigo
Es posible que tal y como indica el mensaje, si incluyes io.h ya puedas acceder a las funciones de iom328p.h ?? Desde luego, si revisas el fuente de io.h te encuentras algo como esto: Código
Espero que te sirva. Saludos para usar el regitro UCSR0A con io.h me da error, pero si le agrego include<avr/iom328p.h> me reconoce ese registro. Título: Re: Problema al incluir una librería en code blocks Publicado por: Gallu en 28 Diciembre 2017, 20:45 pm Pues no se estará incluyendo por la condición elif.
Echando un ojo por encima, veo que para que se cumpla esa condición y se incluya la librería iom328p al incluir io.h, es posible que tengas que añadir alguna directiva al compilador, no estoy seguro de esto eso si, te doy una idea para que lo investigues. échale un ojo a esto http://www.atmel.com/webdoc/avrlibcreferencemanual/using_tools_1using_avr_gcc_mach_opt.html Por curiosidad, qué estás programando ? Saludos Título: Re: Problema al incluir una librería en code blocks Publicado por: MAFUS en 28 Diciembre 2017, 22:35 pm Incluye el define para el uP que estás usando antes de la librería:
Código: #define __AVR_ATmega328P__ Aunque también puedes hacerlo desde la línea de comandos. Mira la documentación de tu compilador. Título: Re: Problema al incluir una librería en code blocks Publicado por: jose_j en 29 Diciembre 2017, 03:08 am gracias por sus respuestas, voy a intentar programarlo con eclipse, no le pude hacer andar con code blocks :-( , lo que estoy queriendo hacer es poder comunicar el micro con el puerto usb, por ahora solo eso, ya que lo veo lejos no pense para que jajaja vamos a ver que sale. gracias nuevamente por sus respuestas. saludos!!!
|