mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik wait- oder waitms-Befehl wartet nicht ?


Autor: Rumpen Zumpen (rumpenzumpen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...kennt einer den Effekt ? in einigen Fällen scheint der Wait-Befehl 
nicht zu  warten ?!

wie behebe ich das ?

...habe die Bascom-Version 1.11.8.8


Gruß
 rumpen


------------------------------------------------------------------------ 
-
Code-Beispiel:

Do
   Print "hello"
   Waitms 5000
Loop

End

PS.: wait geht übrigens auch nicht !?

Autor: Alber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe Bascom gerade nicht zur Hand aber....
hast Du mal einen kleineren Wert versucht (Waitms 500)? Vielleicht gibt 
es da eine Obergrenze, wobei beim überschreiten dieser der Compiler eine 
Fehlermeldung abgeben sollte.

Gruß
Alber

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch, der wartet, aber du merkst das einfach nicht!
was er macht ist einfach nur
"hello" ausgaben
warten 5 sek
"hello" noch mal ausgeben.
dabei bleibt auf dem Display alles unverändert.

probier mal so

Print "hello"
Waitms 2500
Clr
print "hello"
waitms 2500
loop

Viel Erfolg
MfG Alexander

Autor: Werner A. (homebrew)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schöner ist das eh in einer schleife


for (i=1;i<=5;i++)
   print "noch %i"
   delay 1000
end

Autor: Rumpen Zumpen (rumpenzumpen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, irgendwie funzt das alles nicht wie erwartet ( danke für den 
C-schnipsel - kann aber leider kein C)

habe untenstehdnes probiert:   ... und es wartet auch nicht ? merkwürdig 
!
ich gebe das ganze über Com1 auf einen 2.ten Rechner ans Terminal
und hättte jetzt einen sehr langsamen Zeilenvorschub erwartet ( zu 
erkennen am aufblitzen des Cursors) - aber die Zeilen rauschen nur so 
durch

was tun ?

erstaunlicherweise habe ich gestern ein kurzes Testprog, in dem ein 
AD-Wert über Com1 ausgegeben wird, gestestet und da kann komfortabel 
über den waitms-Befehl die Ausgabe geschwindigkeit steuern . ??? warum 
nur hier ???


********************* das geht nicht ************
Do

Waitms 500
Waitms 500
Waitms 500
Waitms 500

Print " "
Print "hello"
Waitms 500
Waitms 500
Waitms 500
Waitms 500
Waitms 500

Print " "
print "hello"
Waitms 500
Waitms 500
Waitms 500
Waitms 500
Loop

End

***********************************************************************
hier ein Teil der AD-Demo: das geht ....

Do
  W = Getadc(channel)
  Print "Channel " ; Channel ; " value " ; W
  Waitms 1000
Loop
End

Autor: Werner A. (homebrew)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was geht denn in deinem Beispiel nicht? du wirst doch nie einen 
Unterschied sehen, da du in beiden Fällen das gleiche ausgibts.

Probier doch mal sowas...
Do
  Print "Hello" ; i
  Waitms 1000
  i = i + 1
Loop
End

Autor: nixwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht hast Du das Simulator-Statement noch drin ($sim)? Das 
entfernt alle warteschleifen.. :-)

Autor: Rumpen Zumpen (rumpenzumpen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahh, die Erlösung - es war das $sim-Statement !!! habe mir irgendwoher 
einen
'Kopf' kopiert, ohne alles verstanden zu haben.....

....also $sim raus.

--> wait geht !!

--> und die Ansteuerung des LCD-Displays damit auch !!!endlich !
    Es geht hier übrigens um das EA W162B-N3LW (wurde im Forum schon 
irgendwo
    mal als problematisch erwähnt )--> läuft mit der lcd4.lib....

schönen Dank an alle, die sich meinetwegen den Kopf zerbrochen haben ...


Gruß
 Rumpen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.