Fehler bei der Einbindung der Jeelib

Hallo,

ich habe mir von der folgende Seite die Jeelib runtergeladen.

Dann mein Arduino IDE gestartet --> Sketch--> Include Library --> Add Zip Library und dann die Jeelib.zip ausgewählt.

Einbindung erfolgt auch.

Wenn ich dann meinen Code überprüfen lasse bekomme ich folgende Fehlermeldung:

Arduino: 1.6.5 (Windows 7), Platine: "Arduino/Genuino Uno"

C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp: In function 'void rf12_interrupt()':
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp:331:43: error: '_crc16_update' was not declared in this scope
rf12_crc = crc_update(rf12_crc, in);
^
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp:341:48: error: '_crc16_update' was not declared in this scope
rf12_crc = crc_update(rf12_crc, out);
^
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp: In function 'void rf12_recvStart()':
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp:401:46: error: '_crc16_update' was not declared in this scope
rf12_crc = crc_update(rf12_crc, group);
^
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp: In function 'void rf12_sendStart(uint8_t)':
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp:508:42: error: '_crc16_update' was not declared in this scope
rf12_crc = crc_update(rf12_crc, group);
^
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp: In function 'uint8_t rf12_configSilent()':
C:\Users\Michi\Documents\Arduino\libraries\jeelib-master\RF12.cpp:724:32: error: '_crc16_update' was not declared in this scope
crc = crc_update(crc, e);
^
Fehler beim Kompilieren.

Wieso findet er _crc16_update nicht?

Ist in der RF12.ccp definiert

#define crc_update _crc16_update
#endif

Was funktioniert hier nicht?

Möchte gerne den Watchdog nutzen.

Kennt jemand dieses Problem?

Danke & Gruß,

Hardtacker

#endif ? Und was steht darüber? Da wird mit bedingter Kompilierung gearbeitet, d.h. es wird nur in bestimmten Fällen übersetzt. z.B. für einen bestimmten Prozessor oder wenn ein anderes Makro definiert ist.

Außerdem bedeutet dass das crc_update im Text durch _crc16_update ersetzt wird. Letzteres brauchst du dann immer noch als eigentliche Funktion.

Ich hatte mal so ein ähnliches Problem

[/
#include <VirtualWire.h> // bei verwendung von VirtualWire.h und JeeLib.h, die crc16.h
#include <JeeLib.h>      // von C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\util nach 
                         //C:\Program Files (x86)\Arduino\libraries\VirtualWire\util kopieren 
                         //und vorher die bestehende Datei umbenennen.
code]

und hatte es so gelöst. Vlt. hilft es dir weiter

Habe das von ardubu getestet und es funktioniert.

Konntest du raus finden warum das nur so funktioniert und nicht über den normalen Weg?

@ Serenifly

Davor steht

#if RF12_COMPAT
#define rf12_rawlen     rf12_buf[1]
#define rf12_dest       (rf12_buf[2] & RF12_HDR_MASK)
#define rf12_orig       (rf12_buf[3] & RF12_HDR_MASK)
#define slack           6
#define crc_initVal     0x1D0F
#define crc_endVal      0x1D0F
#define crc_update      _crc_xmodem_update
#else
#define rf12_rawlen     rf12_len
// #define rf12_dest    (rf12_hdr & RF12_HDR_DST ? rf12_hdr & RF12_HDR_MASK : 0)
// #define rf12_orig    (rf12_hdr & RF12_HDR_DST ? 0 : rf12_hdr & RF12_HDR_MASK)
#define slack           5
#define crc_initVal     ~0
#define crc_endVal      0
#define crc_update      _crc16_update
#endif

Sprich #if RF12_COMPAT wird nicht wahr.

Was wird hier eigentlich definiert?

Kannst du mir die Zeilen erklären?

Vielen Dank

Konntest du raus finden warum das nur so funktioniert und nicht über den normalen Weg?

Das Problem ist, das es zwei crc16.h gibt. Eine in der Arduino Software und eine in der virtualWire und die sind nicht gleich.

hi, i don't speak Deutsch lang but i have same problem...if you can speak english, can you help me solve this problem? how you fix it error? i use jeelib with virtualwire, if i use only jeelib then my code work but not if i use jeelib+virtualwire

oops, i see post #2 and now i solve my problem. Thank for this theme)