Projekt-Mode

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Projekt-Mode

      Hallo Spezi's,

      nach einigen Jahren Bascom habe ich mich mal an das Thema "Project" gewagt.
      Wenn Bascom (2.0.8.2) im Project-Modus ist und mehrere .inc / .bas / u.s.w. eingebunden sind
      zeigt mir der Code-Explorer nur die Main an! Auch wenn der Fokus auf einem anderen Code steht.

      Hat das Verhalten einen besonderen Hintergrund?
    • Ich habe mich falsch ausgedrückt!

      Im Project-Mode werden im Code-Explorer z.B. die Aliases des Main-Code schwarz dargestellt.
      Die der .inc in grau. Es sind aber alle aus dem Projekt sichtbar (alle Files).
      Wenn ich eine Variable im Code-Explorer doppelklicke wird der Focus im Editor-Fenster an die entsprechende Stelle gesetzt.
      Nur die Labels beziehen sich ausschliesslich auf den Main-Code (???).

      Ich hätte erwartet das wie im "Normal"-Mode mit dem Focus im Editor-Fenster der Code-Explorer den vollständigen aktuellen Baum
      mit allen Zweigen anzeigt (inklusive Labels).
    • Also so richtig verstehe ich nicht was Du willst. Wenn Du den von mir markierten Punkt öffnest dann hast Du alle Labels des entsprechenden inc-files. Kannst diese Anklicken und der Cursor wechselt dorthin. Zumindest bei mir geht das so. Alle global vereinbarten Variablen werden sowieso im Baum angezeigt und lokal in inc-files definierte Variablen werden im Variablenpfad der entsprechenden inc-Datei dargestellt.
      Files
      • Unbenannt.JPG

        (38.59 kB, downloaded 8 times, last: )
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • 2019-09-25 21_28_14-Coding.jpg

      Hi,

      du musst in der Sidebar "Project" die von die benötigten Dateien add'en.
      Mit Doppelklick auf den Dateinamen wird die Datei als Tab zur Bearbeitung angezeigt.
      Und mit Project->Save speicherst du das in den Project-Einstellung.
      Das *.prj kannst du mit einem Texteditor Um-Quälen.

      Die Anzeige im Code-Explorer für die INC-Files musst du da einschalten:
      2019-09-25 21_52_32-BASCOM-AVR IDE [2.0.8.2] 256_office_hmi.prj - [K__150-Projekte_1010-Arduino_020.jpg

      Habe ich dein Problem verstanden? :whistling:

      cu zipp

      The post was edited 1 time, last by zipp ().

    • Hallo Zipp,

      in deinem in #7 gezeigtem Bild der IDE-Wahlmöglichkeiten sehe ich den Haken auch bei "Use new method". In der Hilfe wird dieses auch beschrieben, aber so eindeutig verstanden habe ich es nicht, was dort steht. Wann macht es Sinn "Use new method" zu wählen? Kannst du helfen?
    • Bin zwar nich Zipp aber vielleicht kann auch ich helfen.

      Normalerweise muß eine Subroutine oder Funktion als erstes defininiert werden mit:

      Declare sub oder declare function und Dimensionierungen der Variablen

      erst dann kann die separat stehend SUB bzw. Funktion verwendet werden.

      Mit "Use new method" entfällt diese separate Declaration. Diese wird im jetz in der Sub vorgenommen. Prinzipiell ist es egal ob man die "alte" oder "neue" Methode verwendet. Man erspart sich etwas Schreibkram und es wird meiner Meinung nach übersichtlicher.
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • Zur Referenz der Text aus der Hilfe:

      Bascom-Hilfe wrote:

      When compiling a project, the main file is searched for some settings like $regfile, $hwstack, $swstack and $framesize. This information is passed to the compiler DLL.
      This search is fast but simple : it will not work correct when using directives such as :
      #IF someConditon
      $regfile = "m88def.dat"
      #ELSE
      $regfile = "m2650def.dat"
      #ENDIF
      The parser used for the code explorer is capable to get the information but requires more time because it will parse the entire project. So you have the option to chose the old method(default) or the new method. It is good practice to start your project with the required info :
      $regfile = "yourmicro.dat"
      $hwstack=32 '
      $swstack=32
      $framesize=32

      Also, der Compiler muss wissen welcher Chip verwendet wird und wie die Stacks konfiguriert sind, dann fängt er an den Quellcode zu übersetzen. Das heißt, die IDE muss diese Infos vor dem Kompiliervorgang aus dem Source extrahieren (und dann als Parameter an die Funktion in der Compiler-DLL übergeben). Weil diese Suche recht einfach funktioniert (Textsuche), und keine Rücksicht auf Präprozessor-Direktiven #if #else #endif nimmt, ist zb. so etwas nicht möglich gewesen:

      BASCOM Source Code

      1. Const Prozessor = 32
      2. 'Const Prozessor = 64
      3. #if Prozessor = 32
      4. $regfile = "m32def.dat"
      5. $hwstack = 40
      6. ...
      7. #elseif Prozessor = 64
      8. $regfile = "m64def.dat"
      9. $hwstack = 60
      10. ...
      11. #endif
      Display All

      "Use new method" involviert einen zusätzlichen Compiler-Durchlauf um zuerst die Präprozessor-Direktiven zu analysieren um dann den eigentlichen Compile-Prozess aufzurufen und damit ist das obige Beispiel umsetzbar, benötigt aber etwas mehr Rechenzeit.