PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Compiler findet i bewährt Deklarationen neue Fehler (gelöst)



oberallgeier
22.10.2008, 12:19
Guten Tag, alle,

bitte um einen Hinweis, wo/wie ich meine vielen Fehler finden könnte.

AVRStudio 4.13, SP1 auf WinXPPro:

AVR Studio 4.13.557 Service Pack 1
GUI Version 4, 13, 0, 557
AVR Simulator 1, 0, 2, 0
ATTINY2313 226

Optimierungsstufe -0s

Bearbeitet wird aktuell der Code, der in meinem Dottie (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=390196#390196) ohne Fehler und Warnungen compiliert wird. Dieser Code ist aufgeteilt in mehrere Module, z.B.
~com~.h Header und globale Deklarationen
~tmr~.c usf.

Zum Aufbau einer LCD-Ansteuerung über den tiny2313 habe ich das alte Main-Modul kopiert und ausgeforstet bis auf wenige Zeilen.

Nach verschiedenen organisatorischen Kommentaren am Modulanfang beginnt der code wie folgt:

/*
#include "m168D_com_10x81a.h" // commonvariable
*/
#include "L213_com_10x10.h" // Commonvariablen und Header
#include "L213_tmr_10x10.c" // Timer
#include "L213_inf_10x10.c" // Infomodul



#define MCU = AVR_ATtiny2313

#define F_CPU 20000000 // Quarz 20 Mhz-CPU
// #define BAUD 57600
#define UART_BAUD_RATE 57600 // Änderung am 19sep08 2220 für lib Fleury
#define MYUBRR ((unsigned int)((unsigned long) F_CPU/16/BAUD-1)) //vgl doc2545,S179
// und https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=375337#375337
/* ================================================== ============================ */
Nach ähnlichen organisatorischen Kommentaren beginnt die Headerdatei ...\L213_com_10x10.h wie folgt
/*================================================= =================================
Zeitdaten
================================================== ============================== */
/* beachte: volatile! und Vorzeichenlos reicht für alle */

volatile uint16_t Iz_ysecv0, Iz_ysecv1;
/* Zeitmarke µsec des vorletzten Interrupts in der Einheit 50 Mikrosekunden.
Ist der Wert des hochlaufenden Timers zum Interruptzeitpunkt i-1 */

volatile uint16_t Iz_yseci0, Iz_yseci1; /* Zeitmarke "µsec"
des letzten Interrupts in der Einheit 100 Mikrosekunden. Ist der Wert des
hochlaufenden Timers zum Interruptzeitpunkt i (letzter Interrupt) */

volatile uint16_t Iz_diff0, Iz_diff1; /* Zeitdifferenz
Beim Abarbeiten des Interrupts wird yseci mit time1 belegt und diff aus der
Differenz yseci-ysecv errechnet. Danach wird yseci nach ysecv kopiert.
Im main bzw. regelung wird aus Iz_diffx die Drehzahl berechnet. */
Ich hoffe, dass dies genug Informationen für die Suche nach den Fehlerursachen sind.

Der Compiler meldet im ersten, probeweisen Durchgang (ich wollte mal ganz grob sehen, wo ich überhaupt stehe - ok, klingt nach experimenteller Software-Entwicklung) Folgendes:

Build started 22.10.2008 at 12:02:34
avr-gcc.exe -mmcu=attiny2313 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT L213_10.o -MF dep/L213_10.o.d -c ../L213_10.c
In file included from ../L213_10.c:63:
../L213_com_10x10.h:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Iz_ysecv0'
../L213_com_10x10.h:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Iz_ysecv1'
../L213_com_10x10.h:44: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Iz_yseci0'
.... insgesamt ....
Build failed with 85 errors and 35 warnings...

... und ich habe keine Ahnung, wo der Fehler liegen könnte. Wie bereits geschildert - die Headerdatei ist von der funktionierenden Projektdirectory "dottie" einfach übernommen ! Dort stört den Compiler garnix.

Schon mal jetzt vielen Dank für eure Hilfe.

sternst
22.10.2008, 12:30
Wahrscheinlich stdint.h nicht eingebunden.


Wie bereits geschildert - die Headerdatei ist von der funktionierenden Projektdirectory "dottie" einfach übernommen ! Dort stört den Compiler garnix.

Weil dort stdint.h wahrscheinlich durch eine andere Header-Datei vorher eingebunden wurde.

oberallgeier
22.10.2008, 14:25
Hallo sternst,


Wahrscheinlich stdint.h nicht eingebunden ...Danke. Ich hatte eine Paarung /* ... */ um drei includes übersehen: stdlib.h, avr/io.h und avr/interrupt.h. Nun sind nur noch "sinnvolle" (glaubhafte) Fehler da. Danke.