- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Compiler findet i bewährt Deklarationen neue Fehler (gelöst)

  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652

    Compiler findet i bewährt Deklarationen neue Fehler (gelöst)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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 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:
    Code:
    /*
    #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/ze...=375337#375337
    /* ============================================================================== */
    Nach ähnlichen organisatorischen Kommentaren beginnt die Headerdatei ...\L213_com_10x10.h wie folgt
    Code:
    /*==================================================================================
      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:
    Code:
    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.
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    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.
    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Hallo sternst,

    Zitat Zitat von 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.
    Ciao sagt der JoeamBerg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test