-
        

Ergebnis 1 bis 6 von 6

Thema: Frage Schleife in Sub-Funktion

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118

    Frage Schleife in Sub-Funktion

    Anzeige

    Hallo,
    ich will aus dem Hauptprogramm springen und eine Sekunde
    ein Ton erzeugen und dann ins Hauptprogramm zurückspringen.
    Etwa so:
    'attiny2313.dat

    Do
    .....
    Warnton 'Tonausgabe
    ......
    Loop

    Sub Warnton
    Waitms 1
    Portd.5 = Not Portd.5 ' Das soll 100 Schleifen passieren.
    End Sub

    Irgendwie müsste in der Sub eine Schleife sein, aus der ich nach 100
    Durchläufe wieder zurückspringe.
    Oder sollte man einen Interrupt nehmen.Da habe ich aber null Ahnung.

    Die Timer sind alle belegt.


    W.

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

    Du kannst Dir in der Bascom-Hilfe mal folgende Befehle näher ansehen:
    Toggle, um einen Bitwert umzukehren,
    For ... Next, eine Schleife mit definierten Anfangs- und Endwerten.
    Do .. Loop Until a = 100, auch eine Schleife, hochzählen muss man selber

    Dann gibts da noch Sound, da kreischts dann mit den angegebenen Werten wenn ein Buzzer oder ähnliches am Port angeschlossen ist.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118

    Re Schleife...

    Hallo,
    dank für die Info. Mit Sound, ist mir hinterher auch eingefallen.
    Es piept eine Sek. und dann läuf die Schleife weiter.Wenn ich den
    Schleifendurchlauf mit wait auf eine Sek.verzögere, hab ich
    meine Pause.Damit könnte ich leben.
    Es lässt mir aber keine Ruhe, warum ich die andere Variante nicht
    hin kriege.
    Die For..To..Next Schleifenzählung funktioniert in der Sub nicht.
    Mein Fehler, oder generell nicht?
    Die anderen Befehle muss ich erst testen.

    W.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Die For..To..Next Schleifenzählung funktioniert in der Sub nicht.
    Das wäre recht erstaunlich.

    Code:
    Dim a as byte
    Sub Warnton 
     for a = 1 to 100
          Waitms 1 
          Portd.5 = Not Portd.5
     next
    End Sub
    Wenn er das nicht tut, müssen wir deinen Bascom umtauschen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Hallo Männer,
    jetzt schäme ich mich.Unbegreiflich wo ich wieder gepennt habe.
    Der Code geht.Wieder was dazu gelernt.
    Ubrigens der Sinn der Übung war ein Warnsignal zB. bei einer
    Temperuturüberwachung, ab einer bestimmten Temperatur ein
    pulsierenden Warnton zu erzeugen.Um sich die Finger nicht zu
    verbrennen oder so.Der Warnton hat nur einen Zweck, nämlich zu nerven.
    Entweder ich mach den Ton mit der Sub oder mit Sound
    und lass in der Pausenzeit die Schleife weiter laufen.Mal sehen
    welchen Speicherbedarf ich brauche.Ist zwar vielleicht nicht
    Professionell aber es geht.
    Bei schnelleren Ereignismessungen wäre es wohl besser ein Timer zu
    nutzen um den Messzyklus nicht zu verzögern.Also der Timer erzeugt
    den Ton und mit Toggle schalte ich um.
    Sehe ich das richtig?

    W.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Wenns nur um Temperatur messen geht, denke ich, reicht es schon wenn es alle paar Sekunden gemessen wird, das ist dann schon oft genug.
    Oder was hast du für eine Hitzequelle, eine die schneller heiss wird als die Messintervalle das messen ?
    So schnell werden dann aber die Sensoren nicht sein !

    Was ich meine, es wird nichts ausmachen, wenn wegen den Warnton mal 2 Sekunden nix gemessen wird.

Berechtigungen

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