i get the following error code when compiling in the IDE:
Arduino: 1.6.8 (Windows 7), Board: "SparkFun ESP8266 Thing, 80 MHz, 115200"
libraries\LinxESP8266\utility\LinxWiringDevice.cpp.o: In function `LinxWiringDevice::UartWrite(unsigned char, unsigned char, unsigned char*)':
C:\Users\Martin\Documents\Arduino\libraries\LinxESP8266\utility/LinxWiringDevice.cpp:366: undefined reference to `analogReference'
libraries\LinxESP8266\utility\LinxWiringDevice.cpp.o: In function `LinxWiringDevice::AnalogSetRef(unsigned char, unsigned long)':
C:\Users\Martin\Documents\Arduino\libraries\LinxESP8266\utility/LinxWiringDevice.cpp:366: undefined reference to `analogReference'
C:\Users\Martin\Documents\Arduino\libraries\LinxESP8266\utility/LinxWiringDevice.cpp:366: undefined reference to `analogReference'
collect2.exe: error: ld returned 1 exit status
exit status 1
Fehler beim Kompilieren für das Board SparkFun ESP8266 Thing.
Here is the code of LinxWiringDevice.cpp:
/****************************************************************************************
** LINX - Wiring compatible device code
**
** For more information see: www.labviewmakerhub.com/linx
** For support visit the forums at: www.labviewmakerhub.com/forums/linx
**
** Written By Sam Kristoff
**
** BSD2 License.
****************************************************************************************/
/****************************************************************************************
** Defines
****************************************************************************************/
/****************************************************************************************
** Includes
****************************************************************************************/
#include "LinxDevice.h"
#include "LinxWiringDevice.h"
#include <C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Arduino.h>
#include <SPI.h>
#include <Wire.h>
#include <EEPROM.h>
#include <Servo.h>
/****************************************************************************************
** Variables
****************************************************************************************/
/****************************************************************************************
** Constructors / Destructors
****************************************************************************************/
LinxWiringDevice::LinxWiringDevice()
{
//LINX API Version
LinxApiMajor = 1;
LinxApiMinor = 2;
LinxApiSubminor = 0;
//Load User Config Data From Non Volatile Storage
userId = NonVolatileRead(NVS_USERID) << 8 | NonVolatileRead(NVS_USERID + 1);
}
/****************************************************************************************
** Functions
****************************************************************************************/
void LinxWiringDevice::DelayMs(unsigned long ms)
{
delay(ms);
}
unsigned long LinxWiringDevice::GetMilliSeconds()
{
return millis();
}
unsigned long LinxWiringDevice::GetSeconds()
{
return (millis() / 1000);
}
//--------------------------------------------------------ANALOG-------------------------------------------------------
int LinxWiringDevice::AnalogRead(unsigned char numPins, unsigned char* pins, unsigned char* values)
{
unsigned int analogValue = 0;
unsigned char responseByteOffset = 0;
unsigned char responseBitsRemaining = 8;
unsigned char dataBitsRemaining = AiResolution;
values[responseByteOffset] = 0x00; //Clear First Response Byte
//Loop Over All AI Pins In Command Packet
for(int i=0; i<numPins; i++)
{
analogValue = analogRead(pins[i]);
dataBitsRemaining = AiResolution;
//Byte Packet AI Values In Response Packet
while(dataBitsRemaining > 0)
{
*(values+responseByteOffset) |= ( (analogValue>>(AiResolution - dataBitsRemaining)) << (8 - responseBitsRemaining) );
//*(values+responseByteOffset) = 69;
if(responseBitsRemaining > dataBitsRemaining)
{
//Current Byte Still Has Empty Bits
responseBitsRemaining -= dataBitsRemaining;
dataBitsRemaining = 0;
}
else
{
//Current Byte Full
dataBitsRemaining = dataBitsRemaining - responseBitsRemaining;
responseByteOffset++;
responseBitsRemaining = 8;
values[responseByteOffset] = 0x00; //Clear Next Response Byte
}
}
}
return L_OK;
}
int LinxWiringDevice::AnalogSetRef(unsigned char mode, unsigned long voltage)
{
switch(mode)
{
case 0: //Default
analogReference(DEFAULT);
AiRefSet = AiRefDefault;
break;
case 1: //Internal
if(NumAiRefIntVals > 0)
{
//Check If Internal AI Ref Value Is Supported
for(int i=0; i<NumAiRefIntVals; i++)
{
//Voltage Is Supported
if(AiRefIntVals[i] == voltage)
{
analogReference(AiRefCodes[i]);
AiRefSet = voltage;
return L_OK;
}
}
//Didn't Find Voltage
return LANALOG_REF_VAL_ERROR;
}
else
{
//No Internal Voltages, So Internal Mode Not Supported
return LANALOG_REF_MODE_ERROR;
}
break;
case 2: //External
if(voltage >= AiRefExtMin && voltage <= AiRefExtMax)
{
analogReference(EXTERNAL);
AiRefSet = voltage;
return L_OK;
}
else
{
return LANALOG_REF_VAL_ERROR;
}
break;
default:
return LANALOG_REF_MODE_ERROR;
break;
}
return L_OK;
}
its not the full code it was to long. I attached the file instead. By Google I know so far that analogReference has something to do with Arduino.h so I tried to add the full path and tried to copy it to the My Documents/Arduino folder. I am new to Arduino and hope its not a simple question
LinxWiringDevice.cpp (17.2 KB)