PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Error: expected class-name before '{' token



BEADG
13.01.2014, 16:56
Hallo nettes Forum :D

Ich habe eine Librarie aus dem Netz gezogen und jetzt bekomme ich immer den netten Fehler: expected class-name before '{' token.


#ifndef MAX3421E_h
#define MAX3421E_h

#include <SPI.h>
//#include <Arduino.h>
#include "Arduino.h"
#include "Max3421e_constants.h"

class MAX3421E : public SPI { <--- In der Zeile ist der Fehler
//byte vbusState

public:
MAX3421E( void );
byte getVbusState( void );
void toggle( byte pin );
static void regWr( byte, byte );
char * bytesWr( byte, byte, char * );
static void gpioWr( byte );
byte regRd( byte );
char * bytesRd( byte, byte, char * );
byte gpioRd( void );
boolean reset();
boolean vbusPwr ( boolean );
void busprobe( void );
void powerOn();
byte IntHandler();
byte GpxHandler();
byte Task();
private:
void init();
friend class Max_LCD;
};


#endif //_MAX3421E_H_


Nun ich weiß nicht weiter. Vielleicht übersehe ich auch nur ein Punkt oder so.

Mit freundlichem Gruss
BEADG

Sisor
13.01.2014, 20:13
Check mal, ob "Max3421e_constants.h" der Arduino IDE bekannt ist.
Sonst:
1. Sketch->Library importieren->Add Library
2. #include "Max3421e_constants.h" in #include <Max3421e_constants.h> umwandeln

BEADG
13.01.2014, 20:36
Ich habe beide Punkte ausprobiert. Ich habe auch: #include "Max3421e_constants.h" rausgenommen und probiert. Er sagt immer den gleichen Fehler:/

Sisor
13.01.2014, 20:55
Hast du's mal versucht ohne ': public SPI'?

BEADG
13.01.2014, 21:13
Ja habe ich. Dann ist der Fehler weg, aber dann bekomme ich zwei neue Fehler. Einmal undefined reference to `setup' und undefined reference to `loop'.
Der setup-Fehler ist in der Zeile mit MAX3421E( void ); und der loop-Fehler static void regWr( byte, byte );.

Ka was jetzt. :/

Wsk8
13.01.2014, 21:39
Der Fehler muss an dem SPI liegen, dass ist nicht bekannt. Check das mal.

mfg

shedepe
22.01.2014, 11:25
Hallo,
die Klasse MAX3421E leitet von der Klasse SPI ab. Das ist Code technisch an dieser Stelle auch richtig so umgesetzt. (Siehe hierzu auch https://de.wikibooks.org/wiki/C++-Programmierung:_Vererbung)
Der Fehler kann auftreten, wenn der Compiler die Klasse SPI nicht findet. (Leider sind die gcc Fehlermeldungen oftmals nicht sehr aussagekräftigt)
Deswegen überprüfe zuerst die Includes (Also ob #include<SPI> tatsächlich existiert)
Ansonsten kann man den Fehler auch produzieren wenn man ungeschickt im "Ring" includet. Also man eine Datei "b.h" hat die z.B. "a.h" includet und "a.h" wiederum "b.h" includet.
In manchen Fällen kann man das Lösen in dem man ein (in deinem Fall) : class SPI; vor die includes schreibt.