- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 26 von 26

Thema: Funktionen in bascom deklarieren?

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Anzeige

    Praxistest und DIY Projekte
    kann ne Sub keine variablen übernehmen??? Wär mir ja ganz neu!
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  2. #22
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Du gibts beim call ja das "40" als literal an, daher das "byval"
    bei "byref" (also so wie bei deinem declare) muß das argument in einer variablen stehen
    anders:
    Code:
    Declare Sub Hand_drehen_links(v As Byte)  
    dim varia as byte
    
     Do 
        varia = 40 
       Call Hand_drehen_links(varia) 
     Loop 
    End 
    Sub Hand_drehen_links(v As Byte) 
         M_5_v = 1 
         Compare1b = V 
         M_5_r = 0 
         Led = 1 
    End Sub
    Konkret heißt das, bei "byval" übergibt er der sub eine KOPIE des wertes, daher kann sie auch im Porgrammspeicher stehen.

    Bei "byref" (oder nix) übergibt er die (SRAM-) adresse der Variablen

    Klaro ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #23
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Heißt also, er meckert gar nicht über die Zeile, sondern eigentlich darüber, dass in der Deklaration ix angegeben wird?
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  4. #24
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.07.2004
    Beiträge
    138
    Hallo, hier ein praktisches Beispiel:

    Ich möchte für einen Schrittmotor die Prozedur Vorwärts1(Schritte) haben, der Wert für die Schrittzahl soll im im Kopf übergeben werden. Ich deklariere die Prozedur Vw1 so:

    1. Declare Sub Vw1(byval Schritte As Word)

    2. Am Ende des Programms (nach END!) steht die Definition der Prozedur, damit Bascom weiß was abzuarbeiten ist:

    Sub Vw1(by Val Schritte As Byte) 'Schrittmotor links drehen
    For J = 1 To Schritte
    Portb.4 = 1 : Portb.5 = 1 : Waitms 3
    Portb.5 = 0 : Waitms 5
    Next
    End Sub

    3. Im Programm rufe ich die Prozedur z.B. auf mit

    Call Vw1(50)

    Dann dreht der Motor 50 Schritte weit.

  5. #25
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    jipp klappt danke fuer die hilfe...

  6. #26
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    @lunarman: bingo, genau
    Guck mal da
    https://www.roboternetz.de/wissen/in...b_.26_Function

    Tip: "byval" ist püraktisch, weil man variable UND Festwerte gemischt übergeben kann
    aaaaaaber:
    Das Kopieren kommt bei jedem "Call"-Argument dann dazu, das frißt FRAMESIZE + Programmspeicher + Code
    (bei einem String ist das ganzschön)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Labornetzteil AliExpress