Forum: Mikrocontroller und Digitale Elektronik BASCOM "for" Schleife!


von Janiiix3 (Gast)


Lesenswert?

Hallo Freunde,

ich möchte gerade das meine LED auf meinem Board 20x Blinkt!
dies soll meine for Schleife sein aber das funktioniert nicht :(
kann mir jemand helfen?

Dim A as Byte
A=0

Do

A = A + 1

For A = 1 To 20 Step 1

A:

Led1 = 1
Waitms 20
Led1 = 0
Waitms 20

Next A

Loop
End
von Tom M. (tomm) Benutzerseite


Lesenswert?

Janiiix3 schrieb:
> aber das funktioniert nicht :(
Was genau?

> A = A + 1
wozu?

> A:
wozu?

Den LED Port haste aber schon konfiguriert?

Siehe auch: http://www.rn-wissen.de/index.php/Bascom
von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

womit prüfst du denn das blinken? Mit den Augen wird das vermutlich nix, 
20 ms zu "sehen"
von Alex W. (a20q90)


Lesenswert?

1
 Dim LED1 as PortX.x
2
 DDRDx.X = 1 ' oder "0" je nachdem wie die LED angeschlossen ist
3
 Dim A as Byte
4
 
5
 Do
6
 
7
 For A = 1 To 20 
8
 
9
 Led1 = 1
10
 Waitms 200
11
 Led1 = 0
12
 Waitms 200
13
 
14
 Next A
15
 
16
 Loop
17
 End
von Janiiix3 (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> womit prüfst du denn das blinken? Mit den Augen wird das vermutlich nix,
> 20 ms zu "sehen"

mit nem 2313 auf 8 MHz basis sollte man das sehen, kauf dir lieber mal 
eine Brille ;)

-->



Dim A As Byte
A = 0

Do

A = A + 1

For A = 1 To 5 Step 1
If A = 20 Then
Goto Kreisel:
End If


Do:

Programm -->



next A (Variable)
loop
end
von Schleife (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Janiiix3,

unabhängig vom Prozessor oder Taktfrequenz würde mit (dem w/richtigsten 
von) deinem Programm die LED mit 25 Hz blinken.

Gerade dein letztes Posting bedarf vielleicht etwas Erklärungsbedarf?
Was bedeuten die Pfeile?

Wozu das A=A+1? oder das Do: oder NEXT A (Variable)?

AlexW hat dir fast die richtige Lösung gezeigt, im Anhang habe ich sie 
noch etwas korrigiert.

Gruß
von Peter R. (peterfido)


Lesenswert?

Auch nicht ganz wie gewünscht ;-) Die blinken alle öfter als 20 Mal. Mal 
schauen, ob ich es fehlerfrei hinbekomme. :-)
1
Dim a as byte
2
led1 alias portx.y
3
4
config led1 = output
5
for a= 1 to 40
6
   toggle led1
7
   waitms 500
8
next a
9
10
do
11
12
loop
13
end
von AffeMitWaffe (Gast)


Lesenswert?

Basic Code verursacht bei mir immer köperliche Schmerzen beim 
durchlesen. Wer tut sich sowas freiwillig an?
von Thomas der Bastler (Gast)


Lesenswert?

Gehört die Definition for a=...nicht in die

Do

loop

Schleife ?
von Peter R. (peterfido)


Lesenswert?

Nein, dann kannst Du sie auch weglassen, da diese im Loop ausgeführt 
wird. Die Anforderung war 20 Mal blinken und nicht unendlich.

@bewaffneter Affe: Jedem das seine. Nur weil Du es vielleicht nicht 
verstehst, muss es nicht schlecht sein.
von Pillnix (Gast)


Lesenswert?

Hallo Janiiix3 u. Thomas der Bastler

so, wie es Peter R. und Schleife bechrieben haben, ist es richtig.
Das von Schleife gefällt mir am besten, weil jede Zeile eindeutig ist 
und immer klar ist, was passiert. Gerade als Anfänger ist man für solch 
einen Code dankbar.
Haken und Ösen kann man immer noch einbauen, wenn man etwas sattelfester 
ist.

Merkt euch für später: Kommentarzeilen sind NIE! überflüssig! Lieber 
jetzt einen halben Aufsatz schreiben, bevor man später nicht mehr weiß, 
was man damals gemacht hat.


@bewaffneter Affe:
Wohl C-Programmierer?
Jeder hat eben so seine Vorlieben. Schlecht machen bringt nichts. Zur 
Not könntest du ja eine Schmerztablette einnehmen.

C = Gürteltiersprache ....??

Der Quellcode sieht so aus als wäre ein Gürteltier über die Tastatur 
gerollt...!  :-)


MfG
von Hannes L. (hannes)


Lesenswert?

AffeMitWaffe schrieb:
> Basic Code verursacht bei mir immer köperliche Schmerzen beim
> durchlesen. Wer tut sich sowas freiwillig an?

So ähnlich geht es mir, wenn ich C-Code sehe... ;-))

Das einzig Negative an Basic ist die Mär, dass man damit _ohne jedes 
Wissen_ hochwertige Programme schreiben könnte.

...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.