Forum: Mikrocontroller und Digitale Elektronik Problem Linken von nRF24 Multi Network mit AVR Studio


von Stefan S. (eric996)


Angehängte Dateien:

Lesenswert?

Guten Tag,

ich versuche seit einiger Zeit den Code von der Seite:

http://www.insidegadgets.com/2013/06/09/nrf24-multi-network-allowing-for-255-addresses/

zu Linken.
Benutzt wird AVR Studio 4.18 Build 684
Bekomme nur die Fehlermeldung aus dem Buildfenster:

mirf.c:74: error: 'byte' undeclared (first use in this function)

Anscheinend liegt es an der Definezeile der mirf.h Datei:

#define mirf_ADDR    (byte *)"clnt1

Warscheinlich keine große Sache für jemanden der Plan von C hat.

Danke für jede Info.

von To (Gast)


Lesenswert?

push

von Peter II (Gast)


Lesenswert?

das ist kein Linker-fehler  sondern ein Fehler vom Compiler:

Es gibt in C kein Byte.

man müsste ein typedef oder define auf uint8_t einbauen.

von Stefan S. (eric996)


Angehängte Dateien:

Lesenswert?

Danke für die Info,

die Definition ist in der setup.c enthalten

#ifndef byte
  typedef uint8_t byte;
#endif

Diese Definezeile

#define mirf_ADDR      (byte *)"clnt1"

aus der mirf.h begreife ich auch nicht.

von Peter II (Gast)


Lesenswert?

Eric S. schrieb:
> Danke für die Info,
>
> die Definition ist in der setup.c enthalten
>
> #ifndef byte
>   typedef uint8_t byte;
> #endif

dort bringt sie aber nichts. Weil beim compilieren von mirf.c die Datei 
überhaupt nicht verwendet wird. Es sollte schon in einer Header Datei 
stehen.

von Stefan S. (eric996)


Angehängte Dateien:

Lesenswert?

Es sieht wesentlich besser aus,jedoch gibt es noch weitere Fehler (siehe 
Anhang)die in der mirf.c angezeigt werden.

Fehlerzeile aus mirf.c
// Set mirf_ADDR
mirf_write_register(RX_ADDR_P0, mirf_ADDR, 5)

Ursächlich ist wohl die Definezeile

#define mirf_ADDR      (byte *)"clnt1"

aus der mirf.h

von holger (Gast)


Lesenswert?

>Ursächlich ist wohl die Definezeile
>
>#define mirf_ADDR      (byte *)"clnt1"
>
>aus der mirf.h

Dann schreib da doch um Himmels Willen endlich ein
beschissenes uint8_t rein.

#define mirf_ADDR      (uint8_t *)"clnt1"

von holger (Gast)


Lesenswert?

Bei mir compiliert das übrigends ohne Änderungen
wenn ich in der Kommandozeile einfach

make clean
make all

eingebe.

von holger (Gast)


Lesenswert?

Na super

in main.c

#include "setup.c"
#include "mirf.c"

Was war denn das für ein Vollidiot?

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Kannst ja mal versuchen mit dem Anhang neu zu starten;)

von Stefan S. (eric996)


Lesenswert?

holger schrieb:
> Kannst ja mal versuchen mit dem Anhang neu zu starten;)

Der Versuch hat funktioniert :-)

Mit dem Programmers's Notepad 2 direkt aus WinAVR funktioniert es auch 
sofort (vorher habe ich nur mit dem AVR Studio 4.18 Build 684 
herumprobiert ).

Unter Benutzung des MAKEFILE (mit Änderungen)aus dem Code von der Seite
http://www.insidegadgets.com/2013/06/09/nrf24-multi-network-allowing-for-255-addresses/

funktioniert es auch mit dem AVR Studio 4.18 Build 684 (Use External 
Makefile)

Nochmal Schönen Dank an alle !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.