- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Controller startet bei atol neu?

  1. #11
    shedepe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    Mal noch so als idee: Du hast da einen 1kB großen Buffer -> Das ist ganz schön viel für einen kleinen Atmega. Überleg dir doch mal ob du die Daten nicht. Stückchenweise oder sogar Interrupt basiert verarbeiten kannst.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Hallo Tux12Fun,

    der ATMega8 hat nur 1 KByte RAM
    Diesen Speicher teilen sich Stack und Daten.
    Je mehr Speicher für den Stack angelegt wird, desto weniger bleibt also für den RAM übrig.

    Es ist unmöglich einen Puffer mit 1024 Bytes anzulegen
    und schon garnicht gleich zweie davon:

    char uart_buffer[UART_IN_BUFFER_LEN];
    char spl_buffer[UART_IN_BUFFER_LEN];

    Normalerweise merkt das ein Compiler und gibt eine entsprechende Fehler oder Warnmeldung raus.
    Da diese Arrays aber bei deinem Code lokal innerhalb der Funktion get_BTData(char mode) definiert sind,
    ist es vermutlich für den Compiler nicht eindeutig, weil der Speicher ja nicht ständig,
    sondern nur innerhalb der Funktion reserviert und auch wieder verworfen wird.

    Ich würde testweise mal vorschlagen die Arrays ausserhalb der Funktion zu platzieren
    und neu zu kompilieren. Meiner Meinung nach müsste es dann eine entsprechende Fehlermeldung geben.

    Du brauchts auch eher unwahrschienlich diese riesiegen Puffer von 512 oder sogar 1024 Bytes.
    Ich komme meistens mit 16 bis 32 Bytes für meine serielle Schnittstelle aus.

    Das Verhalten der Software bei solch einem Problem ist völlig zufällig und da kann man sich wirklich nen Wolf suchen.
    Wie HaWe auch gleich schrieb: Code auf das minimalste kürzen.
    Deine Idee mit den verschiedenen Optimierungen des Compilers ist übrigens eine sehr gute Testmethode,
    das mache ich auch oft bei unerklärlichem Verhalten. Der Code sollte aber immer mit allen Optimierungen laufen.
    Zumindest ist das generell mein oberstes Gebot.

    Siro
    Geändert von Siro (07.04.2020 um 10:50 Uhr)

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2019
    Beiträge
    19
    Vielen Dank,

    genau das war auch das Problem, jetzt habe ich meine buffer schön kompakt auf 100 Byte begrenzt und bin total happy.

    Danke für die ganze Unterstützung bei der Fehlersuche.

    Nun habe ich noch ein kleines Timer Problem. Dazu mache ich aber ein neues Thema auf.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. ISS: Tierbeobachtungssystem Icarus startet
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 10.07.2019, 11:10
  2. [ERLEDIGT] PC startet nicht von CD/DVD
    Von oderlachs im Forum Offtopic und Community Tratsch
    Antworten: 6
    Letzter Beitrag: 08.01.2013, 20:24
  3. PC startet nur manchmal....
    Von Paulschen97 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 3
    Letzter Beitrag: 12.12.2012, 14:12
  4. Controller, Board, Servo Controller fuer den Spiderbot?
    Von Kiraminh im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 11.12.2007, 17:38
  5. AVR startet bei Interrupt neu
    Von Jaecko im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 25.02.2007, 15:37

Berechtigungen

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

LiFePO4 Speicher Test