Ce qui est le noyau.un (principale.rpc.o) erreur dans l'Arduino?

J'ai été compling mon code dans l'Arduino et tout à coup j'ai eu cette erreur:

 core.a(main.cpp.o): In function `main':
 D:\Personal\Arduino\arduino-1.0.4-windows\arduino-  1.0.4\hardware\arduino\cores\arduino/main.cpp:11: undefined reference to `setup'
 D:\Personal\Arduino\arduino-1.0.4-windows\arduino-1.0.4\hardware\arduino\cores\arduino/main.cpp:14: undefined reference to `loop'

Je n'ai aucune idée de ce que cela signifie. Voici mon code:

#ifndef dht_h
#define dht_h
#if ARDUINO < 100
#include <WProgram.h>
#else
#include <Arduino.h>
#endif
#define DHT_LIB_VERSION "0.1.05"
#define DHTLIB_OK                0
#define DHTLIB_ERROR_CHECKSUM   -1
#define DHTLIB_ERROR_TIMEOUT    -2
#define DHTLIB_INVALID_VALUE  -999
#include <dht.h>
#define TIMEOUT 10000
class dht
{
public:
int read22(uint8_t pin);
double humidity;
double temperature;
private:
uint8_t bits[5];  //Buffer to receive data
int read(uint8_t pin);
};
#endif
//return values:
//DHTLIB_OK
//DHTLIB_ERROR_CHECKSUM
//DHTLIB_ERROR_TIMEOUT
int dht::read22(uint8_t pin)
{
//READ VALUES
int rv = read(pin);
if (rv != DHTLIB_OK)
{
humidity    = DHTLIB_INVALID_VALUE;  //Invalid value, or is NaN prefered?
temperature = DHTLIB_INVALID_VALUE;  //Invalid value
return rv;
}
//CONVERT AND STORE
humidity    = word(bits[0], bits[1]) * 0.1;
if (bits[2] & 0x80) //negative temperature
{
temperature = word(bits[2]&0x7F, bits[3]) * 0.1;
temperature *= -1.0;
}
else
{
temperature = word(bits[2], bits[3]) * 0.1;
}
//TEST CHECKSUM
uint8_t sum = bits[0] + bits[1] + bits[2] + bits[3];
if (bits[4] != sum) return DHTLIB_ERROR_CHECKSUM;
return DHTLIB_OK;
}
//Private
//return values:
//DHTLIB_OK
//DHTLIB_ERROR_TIMEOUT
int dht::read(uint8_t pin)
{
//INIT BUFFERVAR TO RECEIVE DATA
uint8_t cnt = 7;
uint8_t idx = 0;
//EMPTY BUFFER
for (int i=0; i< 5; i++) bits[i] = 0;
//REQUEST SAMPLE
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
delay(20);
digitalWrite(pin, HIGH);
delayMicroseconds(40);
pinMode(pin, INPUT);
//GET ACKNOWLEDGE or TIMEOUT
unsigned int loopCnt = TIMEOUT;
while(digitalRead(pin) == LOW)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
loopCnt = TIMEOUT;
while(digitalRead(pin) == HIGH)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
//READ THE OUTPUT - 40 BITS => 5 BYTES
for (int i=0; i<40; i++)
{
loopCnt = TIMEOUT;
while(digitalRead(pin) == LOW)
if (loopCnt-- == 0)
return DHTLIB_ERROR_TIMEOUT;
unsigned long t = micros();
loopCnt = TIMEOUT;
while(digitalRead(pin) == HIGH)
if (loopCnt-- == 0)
return DHTLIB_ERROR_TIMEOUT;
if ((micros() - t) > 40)
bits[idx] |= (1 << cnt);
if (cnt == 0) //Next byte?
{
cnt = 7;
idx++;
}
else
cnt--;
}
return DHTLIB_OK;
}

Que dois-je faire pour corriger ce code?

  • le code que vous donnez n'est pas pertinent, mais le code de votre précédent question est.
  • Comment compiler votre croquis? êtes-vous à l'aide de l'IDE Arduino? Avez-vous cliquez sur verify ou upload lorsque vous souhaitez compiler votre esquisse sur la fenêtre où l'esquisse est chargé? Un "sketch" est le fichier qui a le loop() et setup() fonctions (cf votre question précédente).
  • et vous cliquez sur vérifier sur la fenêtre qui contient setup() et loop()?
  • ok, alors vous ne parvenez pas à résoudre votre problème précédent, et juste de remplacer un problème par un autre. S'il vous plaît supprimer cette question, car il n'est ni utile pour vous ou pour les futurs lecteurs du site.
InformationsquelleAutor Artemis F | 2013-07-05