- 3D-Druck Einstieg und Tipps         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Anfänger Code problem

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    60
    Beiträge
    1.080
    Anzeige

    E-Bike
    und wenn das Programm dann das tut, was es soll, würde ich im Hinblick auf kommende Projekte dringend empfehlen, das Programm "sauberer" zu machen.
    - Tasterabfrage mit IF ... ELSE ... ENDIF in eine Do-Loop Schleife
    - keine GOTO sondern GOSUB mit RETURN
    - für die Programmteile "blinken" und "durchlauf" Prozeduren schreiben, die dann mit CALL angesprochen werden

    Das mag kleinlich klingen, aber es ist enorm wichtig, wenn man bei etwas größeren Projekten noch die Übersicht behalten möchte.
    Die Verwendung den Alias ist aber schonmal sehr gut (würde ich auch bei dem Taster durchhalten) damit du, wenn du mal die Pinbelegungen änderst, nicht das ganze Proekt nochmal durchforsten musst, wo welche Ports und Pins angesprochen werden.

    Gruß MeckPommER

  2. #22
    Ich bin neu in der sprache wie funtzt das mit Gosub und wo ist der Unterschied zu goto? Und wie realisiere ich das mit den Prozzeduren und call?

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    60
    Beiträge
    1.080
    Der Unterschied zwischen goto und gosub/return ist, das ein goto einfach zu einem Lable springt. Danach musst du halt am ende der routine "per hand" wieder zurückspringen.
    Springst du mit gosub in ein Unterprogramm und beendest dies mit einem return, springt das Programm automatisch wieder zurück zum Befehl nach dem gosub.

    Der enorme Vorteil liegt darin, das du das Unterprogramm von verschiedenen Stellen im Hauptprogramm aus aufrufen kannst, ohne das dein Programmablauf beeinflusst wird (z.b. immer zum Startpunkt des Hauptprogramms zurückkehrt)

    Das mit den Prozeduren ist natürlich noch etwas eleganter, da du dann deinem Unterprogramm auch bestimmte Variablen sauber übergeben kannst. Somit kannst du dein Programm gut strukturieren und einfache Programmteile übersichtlich zu immer komplexeren Aufgabenlösungen ordnen.
    Bascom hat eine Hilfe eingebaut, die zumeist auch ein kleines Beispielprogramm beinhaltet. Da steht auch alles über Prozeduren, Funktionen, gosub, etc. ... Ruhig mal reinschauen und nachmachen. Die Atmels können ca. 10000 Mal neu gebrutzelt werden, da ist viel Spielraum für Fehlversuche

    Viel Erfolg wünscht
    MeckPommER

  4. #24
    ok ich habs noch mal mit zwei Schaltern und gosub gemacht...



    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    
    Config Portd.7 = Output
    Config Portc.1 = Output
    Config Portc.0 = Output
    Config Pind.0 = Input
    Config Pind.1 = Input
    
    Taster Alias Pind.0
    Taster2 Alias Pind.1
    Rot Alias Portd.7
    Gelb Alias Portc.1
    Gruen Alias Portc.0
    
    Portd.0 = 1
    Portd.1 = 1
    Rot = 1
    Gelb = 1
    Gruen = 1
    
    Do
    If Taster = 0 Then Gosub Led_lauf
    
    
    If Taster2 = 0 Then Gosub Blinken
    Loop
    
    Blinken:
    Rot = 0
    Gelb = 0
    Gruen = 0
    Waitms 500
    Rot = 1
    Gelb = 1
    Gruen = 1
    Waitms 500
    Return
    
    
    Led_lauf:
      Rot = 0
      Waitms 50
      Rot = 1
      Waitms 50
    
      Gelb = 0
      Waitms 50
      Gelb = 1
      Waitms 50
    
      Gruen = 0
      Waitms 50
      Gruen = 1
      Waitms 50
    
      Gelb = 0
      Waitms 50
      Gelb = 1
      Waitms 50
    Return
    
    
    End

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

12V Akku bauen