Pages: [1] 2   Go Down
Author Topic: [SOLUCIONADO] ¿Como adaptar una libreria?  (Read 1711 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos, soy recientemente nuevo en Arduino, y tras tocar un poco los tutoriales y ejemplos básicos de Arduino, me he encontrado ante un problema....las librerías. Abro este post por si alguien podría aportar información o ayuda de como crear una librería nueva, que puntos se deben tratar en ella, o simplemente como adaptar una librería que hayas visto, para usarla tu y poder modificarla.

Lo mas que yo he encontrado es:

http://arduino.cc/es/Hacking/LibraryTutorial

Gracias al que pueda ayudarme a mi o a todos los que sean novatos como yo.
« Last Edit: August 29, 2011, 04:58:52 am by LuisAntonio » Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

Donostia
Offline Offline
God Member
*****
Karma: 3
Posts: 744
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Como el tema de las librerías se suele preguntar mucho se puso ese tema en el playground http://arduino.cc/playground/Es/FAQ
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oh!! muchas gracias, pero en el tema de adaptar una libreria no hay nada? 

gracias por la ayuda.
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 958
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

¿ Adaptar a que... ?

No pillo la pregunta
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si tengo una libreria de arduino (la cual no entiendo demasiado xD) como podria adaptarla para que funcionara en alguna placa que no sea de arduino pero sea compatible/semejante ( como por ejemplo un Waspmote tecnología de Libelium)

Yo supuse que al trabajar con el mismo micro, aceptaria la libreria, pero los #includes que se llaman en la libreria parece que no se encuentran o como si fueran distintos en el API de Waspmote al de Arduino. No se si me he explicado bien.... La cuestión esque estoy con un proyecto de transmisión entre arduinos pero como puente intermedio uso 2 Wasp para que se comuniquen inalambricamente, y el que no me funcione la libreria que uso para los Arduinos en los Wasp me retrasando un poco....
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 958
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ufff... era eso...

No es tan facil, aunque lleven micros iguales no son compatibles sin mas.

Yo pasé una liberia de PIC a arduino para usarla pero tuve que traducir comandos y adaptar ciertas funciones a arduino, porque esta no  era muy dificil, pero aun asi, a veces no sera ni posible.

Un saludo.
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno esta semana voy a mirarme un poco como van y la que viene intentare "adaptarla" xD si consigo algo os lo cuento!!!
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si no me equivoco el Waspmote usa un atmega 1281, asi que no deberias tener problema con la libreria...smiley-wink
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ya pero el problema que yo creo que es lo que tengo que modificar, es que en la libreria se llama al include WProgram, y en el API de Waspmote el WProgram es distinto al de Arduino...
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

y cual es el problema? No se como funciona el Waspmote, es la misma filosofia que Arduino? Es decir, con un setup() y un loop() ? Tiene un core con funciones de alto nivel? usa lenguaje de Arduino?
La libreria que quieres adaptar, que es la mia  smiley-wink , esta escrita en C, asi que deberia funcionar sin problemas, ya que no usa ninguna funcion de Arduino. Mientras uses gcc + avrlibc, vas bien con ella.

Por otro lado, yo la he usado con un ATmega1280, que es el micro que usaba antes la version Mega de Arduino.... No me he mirado los datasheet, pero no creo que sea muy diferente el atmega1281 del atmega1280.

smiley-wink

« Last Edit: August 29, 2011, 04:06:20 am by Igor R » Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es identico a Arduino, lo único que el API se ha cambiado un poco, los programas son cuasi-identicos a los de Arduino.

La verdad es que no entiendo mucho de librerias, pero lo que yo creo que es el problema es lo que he comentado, el #include WProgram de la libreria que llama a ese archivo para usar algo que contenga (lo cual desconozco), y claro al meter la libreria en el API de Waspmote, si existe ese archivo pero es distinto al de Arduino, y al probar un programa de envio de mensajes por bus CAN no compila bien dando un error.
EL PROGRAMA
Code:
#include <CAN.h>

#include <pinout.h>

void setup()
{
USB.begin();
USB.println("Empezamos...");
CAN.begin(1);

//Pin 6 INPUT and R pull up ON (Sensor)
pinMode(DIGITAL4,OUTPUT);



}

void loop()
{


CAN_TxMsg.id=0x200;    //Device with speaker sends ID=200, Device with sensor sends=ID=100
CAN_TxMsg.header.rtr=0;
CAN_TxMsg.header.length=8;
CAN_TxMsg.data[0]=digitalRead(6);
CAN_TxMsg.data[1]=0x00;
CAN_TxMsg.data[2]=0x00;
CAN_TxMsg.data[3]=0x00;
CAN_TxMsg.data[4]=0x00;
CAN_TxMsg.data[5]=0x00;
CAN_TxMsg.data[6]=0x00;
CAN_TxMsg.data[7]=0x00;

CAN.send(&CAN_TxMsg);

if (CAN.CheckNew())
{

CAN.ReadFromDevice(&CAN_RxMsg);

//Print message via Serial Port
USB.print(CAN_RxMsg.id,HEX);
USB.print(" => ");
USB.print(CAN_RxMsg.data[0],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[1],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[2],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[3],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[4],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[5],HEX);
USB.print(" - ");
USB.print(CAN_RxMsg.data[6],HEX);
USB.print(" - ");
USB.println(CAN_RxMsg.data[7],HEX);

//Byte 0 => Info from the other board with the sensor status
if (CAN_RxMsg.id=0x100 && CAN_RxMsg.data[0])
{
analogWrite(DIGITAL4,HIGH);
}else
{
analogWrite(DIGITAL4,LOW);
}
}

delay(400);
}



EL ERROR

Code:
/tmp/build2367687346645494278.tmp/core.a(CAN.cpp.o): In function `CANClass::read(CANClass::msgCAN*)':

/home/luis/Escritorio/Waspmote/IDE-API-OTA/waspmote-ide-v.01-linux/hardware/cores/wasp_v019/CAN.cpp:791: multiple definition of `intFlag'

o:/tmp/build2367687346645494278.tmp/alarmacanbusWASP.cpp:85: first defined here
/tmp/build2367687346645494278.tmp/core.a(CAN.cpp.o): In function `CANClass::read(CANClass::msgCAN*)':

/home/luis/Escritorio/Waspmote/IDE-API-OTA/waspmote-ide-v.01-linux/hardware/cores/wasp_v019/CAN.cpp:791: multiple definition of `intConf'

o:/tmp/build2367687346645494278.tmp/alarmacanbusWASP.cpp:85: first defined here
/tmp/build2367687346645494278.tmp/core.a(CAN.cpp.o): In function `CANClass::read(CANClass::msgCAN*)':

/home/luis/Escritorio/Waspmote/IDE-API-OTA/waspmote-ide-v.01-linux/hardware/cores/wasp_v019/CAN.cpp:791: multiple definition of `intCounter'

o:/tmp/build2367687346645494278.tmp/alarmacanbusWASP.cpp:85: first defined here
/tmp/build2367687346645494278.tmp/core.a(CAN.cpp.o): In function `CANClass::read(CANClass::msgCAN*)':

/home/luis/Escritorio/Waspmote/IDE-API-OTA/waspmote-ide-v.01-linux/hardware/cores/wasp_v019/CAN.cpp:791: multiple definition of `intArray'

o:/tmp/build2367687346645494278.tmp/alarmacanbusWASP.cpp:85: first defined here


He probado a comentar en la libreria el include de WProgram,  y el API me deja compilar sin problemas el codigo (aceptando la librerias) pero claro pierde el programa su funcionalidad.

No se si me explico bien....xDDD Voy a probar a compilar la libreria con  G++ para intentar depurar los errores, aunque como no soy demasiado diestro en programación ire algo lento, pero a cualquier avance os informo!

« Last Edit: August 29, 2011, 04:14:56 am by LuisAntonio » Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo unico que uso de Arduino, que a lo mejor te da problemas, es que veo que el Serial no esta implementado en Waspmote (usas funcion USB), y es lo unico que uso en mi libreria para cuando tienes el modo depuracion a ON, que te puede estar dando problemas.
Es decir, todo lo que esta entre #if (DEBUGMODE==1) y #endif. Puedes borrarlo, es solo para depuracion.    
Mejor escribeme por mail, que andar por aqui en el foro, ya que es dificil que te ayuden, ya que la gente no sabe de que libreria estas hablando, cual es el codigo, como va el core de Waspmote si no se dispone de el, .....




Nota.- ni acentos ni enyes (ordenador ingles)
« Last Edit: August 29, 2011, 04:33:30 am by Igor R » Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno que tampoco quiero daros problemas, simplemente era por saber si habia alguna forma sencilla, voy a intentar hacer yo una libreria sencilla para configurar el SPI especifica para Wasp asi voy entendiendo como van las librerias, y a ver si consigo entender que puede fallar, si consigo algo xDDD
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues entonces vete paso a paso... intenta hacerte una libreria sencilla para el Waspmote, y cuando entiendas como se hace y los requerimientos del core, seguro que no tienes ningun problema..... como dicen por ahi.... " las prisas matan! "
Pero mi libreria es en C, y como te digo solamente los Serial que hay para depurar, te pueden dar problemas. Pero puedes eliminarlos.
Por otro lado, mirarse el "core"  es un buen ejercicio didactico, ya que aprendes como gente con experiencia ha creado las funciones.

smiley-wink
« Last Edit: August 29, 2011, 04:42:37 am by Igor R » Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
No he fallado. Acabo de encontrar 10 mil maneras que no funcionan. Thomas Edison
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si la verdad es que lo he pensado! y voy a intentar hacer mi propia librería, así seguro que lo llego a comprender bien, aunque seguramente me "duela" bastante mas xDD pero bueno el que algo quiere algo le cuesta, también me he bajado algunas librerías del SPI para ver su funcionamiento básico, y las voy a analizar para intentar comprenderlas!  De todas formas gracias por la ayuda,aparte de eso pongo tema solucionado, pero una duda, he visto referencias en tu pagina a kreative chaos, ¿me serviría con mis pocos conocimientos intentar leer y entender el tutorial de su libreria, o es demasiado complejo?  Gracias a todos por la ayuda.
Logged

Algunas personas sueñan con grandes logros, mientras que otros no duermen cumpliéndolos.

http://diagnostican.blogspot.com

Pages: [1] 2   Go Up
Jump to: