Includes nicht gefunden

#5627377
Lesenswert?

Hallo,

ich habe eine eclipse gestern installiert und das avr-plugin auch. 
Trotzdem gibt es Fehlermeldungen, die auf Probleme beim Finden der 
includes hideuten:
---------------------------------------------------------------------
code

---------------------------------------------------------------------
* #include  "m328pdef.inc"  */


int main(void)
{

#include "init.c"


init();

return(0);
}



#define zeile  0x0F
#define TASTPORT PORTA
#define startwert 0x08;
#define TP_DefReg DDRA

unsigned char scan_kbd(){

  unsigned char result = 0;
  unsigned char vari =0;

  if (vari == 0) vari = startwert;  /* setze bei wraparound */

  TASTPORT = vari;          /* schreibe und adressiere Zeile */
  delay (1);           /*ms*/
  result = TASTPORT;          /*lese und hole Spalte/Zeilen index*/
  vari = (vari & zeile)/2;
  return(result);

}
------------------------------------------------------------------
Ergebnisse:
--------------------------------


16:22:09 **** Incremental Build of configuration Debug for project 
TestAVR ****
make all
Building file: ../scan_kbd.c
Invoking: Cross GCC Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"scan_kbd.d" 
-MT"scan_kbd.o" -o "scan_kbd.o" "../scan_kbd.c"
../scan_kbd.c: In function ‘scan_kbd’:
../scan_kbd.c:3:18: error: ‘PORTA’ undeclared (first use in this 
function)
subdir.mk:24: recipe for target 'scan_kbd.o' failed
 #define TASTPORT PORTA
                  ^
../scan_kbd.c:14:2: note: in expansion of macro ‘TASTPORT’
  TASTPORT = vari;     /* schreibe und adressiere Zeile */
  ^~~~~~~~
../scan_kbd.c:3:18: note: each undeclared identifier is reported only 
once for each function it appears in
 #define TASTPORT PORTA
                  ^
../scan_kbd.c:14:2: note: in expansion of macro ‘TASTPORT’
  TASTPORT = vari;     /* schreibe und adressiere Zeile */
  ^~~~~~~~
../scan_kbd.c:15:2: warning: implicit declaration of function ‘delay’ 
[-Wimplicit-function-declaration]
  delay (1);           /*ms*/
  ^~~~~
make: *** [scan_kbd.o] Error 1

16:22:10 Build Failed. 3 errors, 1 warnings. (took 312ms)
-------------------------------------------------------------
Anscheinend ist die Installation nicht vollständig. Ich würde nun gerne 
wissen, was noch getan werden muss, um dieses zu ändern.

Grüsse

Robert
Gast #5627508
Lesenswert?

ich habe das include entkommentiert und geändert und avr/io.h eingefügt.
Ergebnis:
------------------------------------------------------------
 .equ SPDR6 = 6 ; SPI Data Register bit 6
                           ^~~~~~~~
../m328pdef.inc:695:18: error: unknown type name ‘SPI’
 .equ SPDR7 = 7 ; SPI Data Register bit 7
                  ^~~
../m328pdef.inc:695:27: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘Register’
 .equ SPDR7 = 7 ; SPI Data Register bit 7
                           ^~~~~~~~
../m328pdef.inc:697:3: error: expected declaration specifiers before 
‘SPSR’
 ; SPSR - SPI Status Register
   ^~~~

.....
MOD: zigtausend ähnliche Fehlermeldungen glöscht
.....

 .equ INT_VECTORS_SIZE = 52 ; size in words
                              ^~~~
../m328pdef.inc:959:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘words’
 .equ INT_VECTORS_SIZE = 52 ; size in words
                                      ^~~~~
../main.c:3:10: fatal error: avr/io.h: Datei oder Verzeichnis nicht 
gefunden
 #include <avr/io.h>
          ^~~~~~~~~~
compilation terminated.
make: *** [main.o] Error 1

18:22:16 Build Failed. 1319 errors, 4 warnings. (took 1s.70ms)
Moderator (Firma: Titel) Persönliche Seite #5627543
Lesenswert?

rfr-mailbox@gmx.de schrieb:
> ich habe das include entkommentiert und geändert und avr/io.h eingefügt.
> Ergebnis: ...zigtausend Fehlermeldungen...
Du hast eine Datei mit Assembler-Defines in ein C-Projekt eingebunden. 
Natürlich klatscht dir der Compiler zig Fehlermeldungen aufs Auge. Das 
ist, wie wenn dir einer die Waschmaschine auf Suaheli erklärt: du 
verstehst gar nichts, denn es ist nicht deine Sprache.
Gast #5627547
Lesenswert?

#include  "m328pdef.inc"
#include "init.c"
#include <avr/io.h>

#define zeile  0x0F
#define TASTPORT PORTA
#define startwert 0x08;
#define TP_DefReg DDRA

unsigned char scan_kbd(){

  unsigned char result = 0;
  unsigned char vari =0;

  if (vari == 0) vari = startwert;  /* setze bei wraparound */

  TASTPORT = vari;          /* schreibe und adressiere Zeile */
  delay (1);           /*ms*/
  result = TASTPORT;          /*lese und hole Spalte/Zeilen index*/
  vari = (vari & zeile)/2;
  return(result);

}

int main(void)
{
init();
return(0);
}
--------------------------------------------------------------

Lothar M. schrieb:
> rfr-mailbox@gmx.de schrieb:
>> ich habe das include entkommentiert und geändert und avr/io.h eingefügt.
>> Ergebnis: ...zigtausend Fehlermeldungen...
> Du hast eine Datei mit Assembler-Defines in ein C-Projekt eingebunden.
> Natürlich klatscht dir der Compiler zig Fehlermeldungen aufs Auge.

das hat er anscheinend. Aber was muss ich einbinden, und wo im 
Linuxsystem stehen diese? Es interessiert mich, ob diese überhaupt da 
sind.

Robert
Gast #5627598
Lesenswert?

Das compilieren von
-------------------------------------
#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>

int main (void) {

   DDRB |= (1 << PB0);

   while(1) {
       PORTB ^= (1 << PB0);
       _delay_ms(500);
   }

   return 0;
}
---------------------------------------
ergab:
___-------------------------------------

19:31:00 **** Incremental Build of configuration Debug for project 
TestAVR ****
make all
Building file: ../main.c
Invoking: Cross GCC Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" 
-o "main.o" "../main.c"
../main.c:3:10: fatal error: avr/io.h: Datei oder Verzeichnis nicht 
gefunden
 #include <avr/io.h>
          ^~~~~~~~~~
compilation terminated.
subdir.mk:24: recipe for target 'main.o' failed
make: *** [main.o] Error 1

19:31:00 Build Failed. 3 errors, 0 warnings. (took 325ms)

--------------------------------------------------------------
was muss ich installieren und woher bekomme ich das?

Gruss
Robert
Gast #5627639
Lesenswert?

Dann gehört da ein #include "init.h" mit dem Header hin, aber nicht die 
Implementierung der .c Datei.
Ist den überhaupt eine aktuelle avr-gcc toolchain installiert? Das 
Plugin muss die nicht unbedingt mitbringen, das sind verschiedene 
Baustellen. Die Linux Distris haben oft ältere gcc Versionen im Gepäck 
und vermutlich auch keine für AVR.
#5627662
Lesenswert?

Ich habe das letzte mal vor einigen Jahren programmiert, habe aber jetzt 
Zeit, um mich um eine Probleme (und deren Lösungen) zu kümmern.

Allerdings habe ich keine Ahnung von Installationen.

Es w#äre hilfreich, wenn du schreiben würdest, welche version aktuell 
ist und wie ich das herausfinde. Die gcc-avr Version scheint aktuell zu 
sein, ich habe diese aus der lint-Distri installiert. Die eclipse ist 
neu,
Eclipse IDE for C/C++ Developers, Version: 2018-09 (4.9.0) Build id: 
20180917-1800.

Weiteres ist derzeit unklar.

Gruss

Robert

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren