elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al incluir una librería en code blocks
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al incluir una librería en code blocks  (Leído 3,334 veces)
jose_j

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Problema al incluir una librería en code blocks
« 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.


En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Problema al incluir una librería en code blocks
« Respuesta #1 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
  1. /* This file should only be included from <avr/io.h>, never directly. */

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
  1. #elif defined (__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
  2. #include <avr/iom328p.h>
  3. #elif defined (__AVR_ATmega329__) || defined (__AVR_ATmega329A__)


Espero que te sirva.

Saludos


En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
jose_j

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema al incluir una librería en code blocks
« Respuesta #2 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

Código
  1. /* This file should only be included from <avr/io.h>, never directly. */

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
  1. #elif defined (__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
  2. #include <avr/iom328p.h>
  3. #elif defined (__AVR_ATmega329__) || defined (__AVR_ATmega329A__)


Espero que te sirva.

Saludos
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 ejemplo
para usar el regitro UCSR0A con io.h me da error, pero si le agrego include<avr/iom328p.h> me reconoce ese registro.
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Problema al incluir una librería en code blocks
« Respuesta #3 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
« Última modificación: 28 Diciembre 2017, 21:17 pm por Gallu » En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema al incluir una librería en code blocks
« Respuesta #4 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__
#include <avr/io.h>

Aunque también puedes hacerlo desde la línea de comandos. Mira la documentación de tu compilador.
En línea

jose_j

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema al incluir una librería en code blocks
« Respuesta #5 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!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Problema con el Code::Blocks
Programación C/C++
Zodiak98 5 3,581 Último mensaje 28 Junio 2013, 00:47 am
por dato000
Imposible linkar librería externa en Code::Blocks
Programación C/C++
Scate 4 2,022 Último mensaje 5 Febrero 2015, 01:02 am
por Scate
Problema compilacion Code Blocks
Programación C/C++
10delin 3 2,499 Último mensaje 20 Enero 2016, 15:09 pm
por MAFUS
problema con code blocks
Programación C/C++
alejandroluna97 1 3,033 Último mensaje 6 Octubre 2016, 16:07 pm
por ivancea96
problema al usar gtk en Code::Blocks
Programación C/C++
falala 1 1,866 Último mensaje 17 Abril 2017, 17:27 pm
por falala
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines