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

Thema: Probleme mit Sub

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408

    Probleme mit Sub

    Anzeige

    Praxistest und DIY Projekte
    Hallo ich habe ein Problem mit der sub funktion

    ich übergebe eine 19 und bekomme eine 62 der code ist grad mal 10 Zeilen
    und ich kapiers nicht.
    ist der Speicher in einer sub begrenzt ? wenn ja auf wieviel und
    wie kann ich das problem lösen

    Danke für Antwort
    Gruß Daniel

    Code:
    $regfile = "m16def.dat"
    Declare Sub Menueupdate(byval Menpunkt As Byte )
    
    Call Menueupdate(19)
    End
    
    Sub Menueupdate(byval Menpunkt As Byte )
    
    Local Adresse As Byte
    Local Neuadresse As String * 3
    Local Langstring As String * 20
    
    Print "menuepunkt sub " ; Menpunkt
    
    End Sub

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    zum testen kannst Du die Localen Variablen weglassen, die werden ja noch nicht gebraucht,
    ansonsten mit Hilfe dieser Seite die Stack und Framegrössen ändern:
    https://www.roboternetz.de/wissen/in.../Bascom_Inside

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    die sind ja extra drinn weil sie den fehler verursachen

    hab den urcode solange eingekürzt bis das übrig blieb

    es liegt ja wahrscheinlich am sw stack leider verstehe ich nicht viel davon
    wie groß kann man die stacks dimensionieren
    wo kommt der platz her wenn ich diese vergrößere?

    brauch ne antwort in dummy deutsch

    Gruß Daniel

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hast Du die Seite gelesen, da würde es drinstehen wann wieviel Speicher in etwa verbraten wird.
    Alles zusammen darf dann aber nicht grösser werden wie der SRAM des AVR.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    wenn man ne seite liest heiß das noch nicht das man das auch versteht

    also was mach ich wie wie damit ich 40 byte locale variablen im sub verbraten kann

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    wenn man sich diesen Abstz durchliest:
    https://www.roboternetz.de/wissen/in...e#Lokale_Daten
    Lokale Daten

    Für lokale Daten muß natürlich erstmal ein Platz geschaffen werden. Bascom verwendet dazu das Frame, ...
    würde ich darauf schliessen erstmal den Wert bei $frame zu erhöhen, standarmässig ist er auf 32, was nicht reicht, also mal mind. 50 probieren.

    Den Wert für $swstack auch sicherheitshalber mal auf 50, wenns noch nicht geht nochmal alles etwas grösser machen bis es geht, dann nochmal für etwas reserve.

    Der M16 hat 1024 Byte SRAM, wenn das nicht reicht, anders Programmieren, oder einen grösseren AVR.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    47
    Beiträge
    408
    alles klar ..werd die mal bissl aufstocken und dann solang drosseln bis ich wieder probs bekomm
    dann hab ich in etwa die grenze

    danke für den tip

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    57
    Beiträge
    576
    Hallo

    Ein kurze Bemerkung vielleicht zu den Sub's und Function's

    Die Brauchen leider ein wennig mehr Speicher

    Für mich stelle ich mir die Frage, ob man nicht doch gleich bei Gosub und Goto bleiben soll. (leider)

    Blöd wäre es , wenn man sich auf die Sub und Function einschiesst und dann, wen der Speicher nicht reicht, erst wieder alles umschreiben muss
    Mir geht es derzeit so mit einem Mega16
    Derzeit bin ich bei 13946 Byte (von 16000 Byte) und das Programm ist noch nicht ganz fertig. (Alle noch mit Gosub)
    Habe mal ein paar von den Gosub's in Sub geändert (ich glaub so ca. 17Stück)
    und ich komme von 13946 auf 14326Byte

    Um den Daumen so ca. 30 Byte mehr für einen Sub-Aufruf

    Nur mal so zum Nachdenken
    (und ich wollte keinen Extra Thread dafür aufmachen

Berechtigungen

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

12V Akku bauen