Go Down

Topic: Problema con #include <Wire.h> (Solucionado) (Read 2910 times) previous topic - next topic

Dukatus

Jul 17, 2011, 08:32 pm Last Edit: Jul 18, 2011, 12:21 pm by Dukatus Reason: 1
Hola a todos:

Tengo un problema de esos tontos muy tontos pero que te vuelven loco, 2 dias intentando  copilar una libreria que e creado y siempre me da el mismo error que no encuentra "Wire.h".

La cabecera es esta.

Code: [Select]
[code]
#ifndef RelojDS1307_h
#define RelojDS1307_h

#include "WProgram.h"

class RelojDS1307Class
{
 private:
 public:
   RelojDS1307Class();
   void Reset();
 void SetDate( int monthDay, int month, int year );
   void SetTime( int hour, int minute, int second );
 char * DateTime();
 char * Date();
 char * Time();
 boolean IsLater( int hour, int minute );
 boolean IsPrevious( int hour, int minute );
};

byte bcdToDec(byte val);  
byte decToBcd(byte val);

extern RelojDS1307Class RelojDS1307;

#endif
[/code]

y parte del codigo
Code: [Select]
[code]
#include <stdint.h>
#include <Wire.h>
#include "RelojDS1307.h"

#define DS1307_ADDRESS 0x68


RelojDS1307Class::RelojDS1307Class()
{
 Wire.begin();
}

void RelojDS1307Class::Reset()
{
 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.send(0);
 Wire.endTransmission();
}

void RelojDS1307Class::SetDate( int monthDay, int month, int year )
{
 Wire.beginTransmission(DS1307_ADDRESS);
 Wire.send(0); //stop Oscilador
 //Wire.send(decToBcd(weekDay));
 Wire.send(decToBcd(monthDay));
 Wire.send(decToBcd(month));
 Wire.send(decToBcd(year));
 Wire.send(0); //start
 Wire.endTransmission();
..................
}
[/code]

y siempre da el mismo error
Quote

D:\Arduino\Arduino\libraries\RelojDS1307\RelojDS1307.cpp:4:18: error: Wire.h: No such file or directory
D:\Arduino\Arduino\libraries\RelojDS1307\RelojDS1307.cpp: In constructor 'RelojDS1307Class::RelojDS1307Class()':
D:\Arduino\Arduino\libraries\RelojDS1307\RelojDS1307.cpp:13: error: 'Wire' was not declared in this scope
...........................


E probado #include <Wire.h> y #include "Wire.h" y por supuesto con minusculas.

Tiene alguien alguna idea de que va el tema.

Gracias y saludos


nayma

normalmente te tienes que bajar la libreria,
y después llamarlo en el programa
#include <Wire.h>

Razorblade

Claro, para las actuales versiones del IDE la librería Wire la tienes que incluir en el programa que hagas, no en la librería que estás haciendo.

Por eso por ejemplo ahora para incluir la librería Ethernet hace falta incluir también la SPI específicamente.

Dukatus

Hola:

nayma:
     La librería ya la trae el IDE no hace falta descargarla.

Razorblade:
     E quitado la inclución de wine en la libreria y la e puesto en el programa como decias pero ahora me dice que no tiene prototipo de la llamadas a wine en la libreria.


Saludos.

Razorblade

Perdón, incluyela también en la librería. Lo que no tengo claro es sin en el .h o en el .cpp. Sólo tienes que probar a ver.

Dukatus

Razorblade ahora si, copila perfectamente, pero la solución no tiene coherencia ninguna, esta gente del desarrollo del ID no estan muy centraos y lo peor es que no hay otro.

Muchas gracias por todo.

Saludos

Go Up