PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Do Loop



christian87
26.01.2005, 23:27
Hallo ich habe ein Frage zur do-loop funktion und zwar möchte ich z.B. eine Led 10x blinken lassen. Ich weiß das ich das mit der do loop funktion machen kann. Habe mir auch im index was dazu durchgelesen kann es aber nicht wirklich realisieren.

RCO
26.01.2005, 23:29
Schick doch mal deinen Code, dann können wir dir sicher helfen.
Mit do loop wiederholst du aber dauerhaft und nicht nur ein oder 2 (10) mal.
Poste einfach mal deinen Code.

MFG Moritz

christian87
26.01.2005, 23:42
in der hilfe habe ich das so verstanden das mann auch eine bestimmte anzahl wiederholen kann, dauerhaft kriege ich hin. Welche Funktion brauch ich für bestimmte Zeiträume (Wiederholungen)?

m.artmann
27.01.2005, 07:36
Hallo christian87,

Probier doch mal folgendes:
DIM I As Byte
For I = 1 to 10

'Hier steht Dein Code

Next I

Im ersten Durchlauf ist I=1 und wird bei jedem Next I um 1 erhöht, solange bis I = 10 ist.
Danach wird die Schleife verlassen und mit den befehlen nach NExt I weitergemacht.

Gruß
m.artmann

christian87
28.01.2005, 12:04
Hallo,
danke für die Hilfe hat super geklappt.
Ich hab jetzt mal den Schrittmotor von robotikhardware angesteuert und benutze folgendes Programm:


'#####################################
'Schrittmotoransteuerung an rn-control
'Art= Vollschritt bipolar
'#####################################


$regfile = "m32def.dat" 'controller definieren
$crystal = 16000000 'Taktfrequenz definieren

Config Portb = Output 'Port als "Ausgang" definieren
Config Portc = Output
Config Portd = Output

1a Alias Portb.0 'Pin als Spule 1a benennen
1b Alias Portb.1 'Spule 1b

2a Alias Portc.6 'Spule 2a
2b Alias Portc.7 'Spule 2b


Portb.0 = 0 'Spule 1a definiert auf Null
Portb.1 = 0 'Spule 1b

Portc.6 = 0 'Spule 2a
Portc.7 = 0 'Spule 2b

Portd.4 = 1 'Motortreiber Spule 1 Enable
Portd.5 = 1 'Motortreiber Spule 2 Enable


Dim Zeit As Byte

Zeit = 2 'Zeit zwischen den einzelnen Schritten (kleiner=schneller)
'
Do 'Schleife beginnen (Vollschritt)
1a = 1 : 1b = 0 : 2a = 1 : 2b = 0 'Schritt 1
Waitms Zeit
1a = 1 : 1b = 0 : 2a = 0 : 2b = 1 'Schritt 2
Waitms Zeit
1a = 0 : 1b = 1 : 2a = 0 : 2b = 1 'Schritt 3
Waitms Zeit
1a = 0 : 1b = 1 : 2a = 1 : 2b = 0 'Schritt 4
Waitms Zeit
Loop 'wiederhole Schleife[[/quote]


Mein Problem ist jetzt bei der Funktion die du mir gesagt hast ist bei
For I = 1 to 250 schluß.

Ich möchte jetzt den Motor z.B. 5min laufen lassen wie mach ich das?
Hab hier im Forum was über die Timer funktion gefunden, mach ich es mit dieser Funktion?

Andree-HB
28.01.2005, 12:12
nach "255" dürfte eigentlich erst Schluss sein.

Ich schätze, Du wirst Variable "I" nur als [highlight=red:58988d8604]Byte[/highlight:58988d8604] (8 Bit) definiert haben, somit hast Du bei 2hoch[highlight=red:58988d8604]8[/highlight:58988d8604]=256 Stufen/Werte

Bei höheren Werten musst Du es dann als "Word" (16 Bit) definieren, damit hast Du 2*8Bit=2hoch16=65535 Stufen/Werte

christian87
28.01.2005, 12:32
Ok danke aber das mit der Timer Funktion interessiert mich noch kann ich das damit auch machen?