-
        

Ergebnis 1 bis 6 von 6

Thema: ASURO - Programmspeicher voll?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.05.2005
    Ort
    München
    Alter
    46
    Beiträge
    59

    ASURO - Programmspeicher voll?

    Anzeige

    Hallo,

    woran merke ich, das bei meinem ASURO der Programmspeicher voll ist?

    Ich habe folgendes Problem:
    1. Mein Programm funktioniert prinzipiell.
    2. Ich schreibe 1-2 Zeilen code dazu, die aber die Funktionalität nicht verändern.
    3. Mein Programm funktioniert nun nicht mehr. Lt. debug erhöht sich ein Zähler nicht mehr. Er bleibt immer auf 0 oder meine Odometriezäler bleben auch immer auf 0.

    Laut 'make' hat mein Programm eine Größe von 4630.

    Kann es überhaupt sein, das der Programmspeicher den Datenspeicher überschreibt oder ist das nur ein Problem der 'alten' Microcontroller?

    Woran könnte so ein Phenomän noch liegen?

    Martin

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.10.2005
    Alter
    27
    Beiträge
    326
    wieviel pages hat denn dein prog?

    gruß fabi

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    Beim AVR auf dem ASURO ist auch noch der Bootloader drin...und der nimmt sehr viel Speicher weg.
    Wo ist das Problem, baust den ASURO auf einem AVR16 um, geht ganz prima.
    Oder schmeisst den Bootloader raus und Proggst mit ISP.

    Castle

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    08.05.2005
    Ort
    München
    Alter
    46
    Beiträge
    59
    Mein Prog hat zur Zeit 77 pages.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    08.05.2005
    Ort
    München
    Alter
    46
    Beiträge
    59
    Hallo,

    habs selber rausgefunden.

    Ich verwende für meine Odometrie den Interrupt des ADC Registers. Bei jedem Überlauf wird der Zustand abgefragt und ggf. die Farbwechsel auf den Rädern gezählt.

    Für meine Regelung etc. verwende ich den Interrupt Timer2Compare, der auch von der Sleep Funktion verwendet wird.

    Nun wurde mein Code in dem Timer2Compare Interrupt immer länger. Damit wurde, da dieser Interrupt höhere Prio hat als der ADC Interrupt, der ADC Interrupt anscheinend nicht mehr aufgerufen.

    Lösung: Der Regelungscode wird nun nur bei jedem 20. durchlauf der Inerrupt Routine aufgerufen. 19 mal wird die Routine schnell wieder verlassen. Somit wird auch die ADC Interrupt Routine wieder aufgerufen und meine Odometrie Zähler zälen wieder

    Blödes Problem

    Aber vielleicht kann mir doch noch jemand beantworten, wieviele Pages ein Programm maximal umfassen darf.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.12.2004
    Ort
    München
    Alter
    44
    Beiträge
    198
    112

    8kB Speicher gesamt, davon 1kB Bootloader. Eine "Page" entsprcht 64Byte, daher 112 Pages, die reinpassen.

    CU, Robin

Berechtigungen

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