- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Rücksprung Probleme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2007
    Ort
    Ingolstadt
    Beiträge
    112

    Rücksprung Probleme

    Hallo zusammen,

    ich hab bei meinem Projekt ein Problem beim zurückspringen aus eigenen Funktionen.
    Ich denke mal es ist nur ein trivialer Fehler - nur leider sehe ich ihn nicht,Ggoogle hat mich auch net weiter gebracht...

    Ein kleines Testprogramm soll die LED im 1 Hz Takt blinken lassen.

    Code:
    #define F_CPU 8000000UL
    
    #include <avr/io.h>
    #include <util/delay.h>
    
    void LED_ON();    //Prototyp
    void LED_OFF();    //Prototyp
    
    int main(void)
    {
        DDRC = 0x1C;    //Richtung festlegen
        
        while(1)
        {
            LED_ON();
            
            _delay_ms(500);
            
            LED_OFF();
            
            _delay_ms(500);
    
        }
    }
    
    //LEDs einschalten
    void LED_ON()
    {
        PORTC = 0x1C;
    }
    
    //LEDs ausschalten
    void LED_OFF()
    {
        PORTC = 0x00;
    }
    Controller: ATMEGA128L
    Programmer: AVR Dragon
    Prog.Oberfläche: AVR Studio 6

    Leider gehen die LEDs nur an und das wars.
    Beim Debuggen sehe ich das er beim zurückspringen nicht in die Main, sonderen irgendwo in den leeren Speicherbereich springt und ab da weiter läuft bis er wieder am Anfang ist.

    Grüße

    Furay
    Sehe das leben nicht so ernst - du kommst sowieso nicht lebend davon.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    ... Beim Debuggen ... zurückspringen nicht in die Main, sonderen irgendwo ...
    Ich bin ja nicht sicher, dass es ein Parameterproblem ist - Du deklarierst nämlich Deine Prototypfunktionen ohne Parameterdefinition.
    Code:
    ...
    void LED_ON();    //Prototyp
    ...
    Auch die Funktion selbst ist ohne Parameterdefiniton . . . bei mir sieht ein Funktionsprototyp etwa so aus:
    Code:
    ...
      void itxt_rn (void);          // "\r\n"
    ...
    sprich: es ist eindeutig definiert, dass die Funktion ohne Parameter aufgerufen wird und auch keine/n zurückgibt. Lediglich der Funktionsaufruf geht (meines Wissens) mit der einfachen, leere Klammer für die Parameterübergabe. Meckert der Compiler das nicht an???
    Geändert von oberallgeier (19.06.2013 um 10:38 Uhr)
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2007
    Ort
    Ingolstadt
    Beiträge
    112
    Hallo oberallgeier,

    der Compiler hat dies nicht angemosert, nicht mal eine Warnung ist da.
    Ich hab nun beim Prototyp und bei der Funktion nun das void reingeschrieben, leider auch dies ohne Erfolg.

    Grüße und Danke

    Furay
    Sehe das leben nicht so ernst - du kommst sowieso nicht lebend davon.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Doofe Frage: Wo hängt denn die LED? Du schaltest ja (je nachdem ob die LEDs gegen GND oder VCC liegen) die Ports PC2, PC3 und PC4 ein, die anderen aus (oder eben nur die aus und die andern - dauernd - ein).
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2007
    Ort
    Ingolstadt
    Beiträge
    112
    Es Hängen nur 3 LEDs an PC2,3 und 4. diese werden über eine Transistorstufe geschalten.

    Wenn ich den Port direkt in der Schleife (so wie in den Funktionen) beschreibe, funktioniert das blinken auch problemlos.
    Der Funktionsaufruf macht nur Probleme...
    Sehe das leben nicht so ernst - du kommst sowieso nicht lebend davon.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Die leere Klammer ist schon ok, obwohl man dort ein void einsetzen sollte. Der ganze Code sieht gut aus.

    Ich könnte mir vorstellen, daß der Stack nicht in Ordnung ist. Da das aber der Start-Up Code automatisch erledigt, könnte das nur passieren, wenn der Compiler für die falsche CPU übersetzt. Der Stackpointer könnte dann auf eine Adresse zeigen, an der kein RAM existiert. Ist aber nur eine dürre Vermutung

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Sorry, musste mir erst das Datenblatt laden. Das neueste Datenblatt /Rev. 8151H–AVR–02/11/ schreibt:

    "... The Atmel®AVR® ATmega128A is by default shipped in ATmega103 compatibility mode ..." und
    "...Port C also serves the functions of special features of the ATmega128A as listed ..." und
    "... PORTC will be output during first power up, and until the ATmega103 compatibility mode ..."

    Vielleicht mal den ATmega103 compatibility mode abschalten (ich will einfach nicht für Dich das ganze DAtenblatt durchackern).
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    > der Compiler hat dies nicht angemosert,
    > nicht mal eine Warnung ist da.

    Dann setze -Werror=strict-prototypes -Werror=missing-prototypes
    Disclaimer: none. Sue me.

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Zitat Zitat von SprinterSB Beitrag anzeigen
    ... nicht angemosert ... setze -Werror=strict-prototypes -Werror=missing-prototypes
    Hallo SprinterSB - schöner Hinweis. Hat mich grad zu ner halben Stunde Suche animiert um zu sehen, wo um alles in der Welt ich so etwas setzten soll/kann.

    Ich sehe nur in meinen Custom Compilation Options in [All files] - die default settings
    -Wall
    -gdwarf-2
    -std=gnu99
    -0s
    -funsigned-char
    -funsigned-bitfields
    -fpack-struct
    -fshort-enums

    In der Hilfe vom AVRStudio (4.18 Build 700) : keinen Hinweis gefunden. Im http:...avr-libc/user-manual/... : keinen Hinweis gefunden. Beim rum-goocke(l)n : keinen Hinweis gefunden. Vielleicht machts doch die Hitze?

    Bitte um Hilfe, danke.
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    -Wstrict-prototypes (C and Objective-C only)Warn if a function is declared or defined without specifying the argument types. (An old-style function definition is permitted without a warning if preceded by a declaration which specifies the argument types.)
    -Wmissing-prototypes (C and Objective-C only)Warn if a global function is defined without a previous prototype declaration. This warning is issued even if the definition itself provides a prototype. The aim is to detect global functions that fail to be declared in header files.
    http://gcc.gnu.org/onlinedocs/gcc-4....g-Options.html

    Beim AVR Studio 6.1:
    Eigenschaften->AVR/GNU C Compiler->Miscellaneous->Other flags: ....

    mfg

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Feher beim Rücksprung aus einer Sub
    Von andreasrohe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 28.11.2009, 15:36
  2. Falscher Rücksprung aus ISR
    Von Furtion im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 10.01.2009, 19:00
  3. Kein Rücksprung aus Unterprogammen zurücl in die Main
    Von Oppi im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 04.01.2009, 01:11
  4. I²C Probleme
    Von JWehmeier im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 18.06.2008, 23:24
  5. rücksprung nach einem call-aufruf
    Von roboterheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 02.01.2008, 10:49

Berechtigungen

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

LiFePO4 Speicher Test