PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schleife mit "word" variable...



mathiasd
13.10.2004, 16:35
Guten Tag!
Ich habe ein Problem mit einer Schleife:

define n word
define x word
...
for n = 1 to x step 1
...
next n

dabei ist n und x eine word variable, da die Schleife mehr als 255 mal wiederholt werden muss. Aber der Mikrocontroller hängt sich anscheinend auf und verlässt die Schleife nicht mehr (in meinem Fall stoppt, ein damit angsteuerter Schrittmotor, nicht mehr)
Wäre nicht schlecht, wenn jemand eine Lösung auf mein kleines Problem weiß....
bis denn
Mathias

Tappi
14.10.2004, 06:28
Guten Tag!
Ich habe ein Problem mit einer Schleife:

define n word
define x word
...
for n = 1 to x step 1
...
next n

dabei ist n und x eine word variable, da die Schleife mehr als 255 mal wiederholt werden muss. Aber der Mikrocontroller hängt sich anscheinend auf und verlässt die Schleife nicht mehr (in meinem Fall stoppt, ein damit angsteuerter Schrittmotor, nicht mehr)
Wäre nicht schlecht, wenn jemand eine Lösung auf mein kleines Problem weiß....
bis denn
Mathias
Hallo,

die CC achtet nicht sonderlich auf Einhaltung der Grenzen einer FOR Schleife. Du musst sicher gehen, dass die FOR Schleife auf jedenfall (auch unter Berücksichtung von STEP) bis x gelangt!

Wenn das nicht klappt kannst Du zur Not ja noch eine IF Abfrage in die Schleife einbauen:

define i word
define x word

for i = 1 to n step 1

if i > 10000 then goto exit_for

next i

#exit for
'...

mathiasd
14.10.2004, 13:08
Tag zurück;
Wie kann i denn größer als 10000 werden, wenn i oben als byte Variable feiniert ist. Byte Variablen können doch nur voin 0 bis 255 zählen...
bis denn
mathias

mathiasd
14.10.2004, 13:09
das soll heißen definiert.....

Tappi
14.10.2004, 13:16
Tag zurück;
Wie kann i denn größer als 10000 werden, wenn i oben als byte Variable feiniert ist. Byte Variablen können doch nur voin 0 bis 255 zählen...
bis denn
mathias

Oben sind sie als WORD definiert und so wolltest Du das doch haben. Bei BYTE Variablen gibt es meines Wissens nach nicht diesen Bug.

edit:

Ahhh jetzt weiß ich was Du meinst. Ja in _meinem_ Beitrag oben waren die Variablen falsch definiert, sie sollten schon WORD sein. Ich habe jetzt nachträglich BYTE in WORD geändert.

RCO
14.10.2004, 13:32
Dumme Frage, aber su hast x einen Wert zugewiesen?

mathiasd
14.10.2004, 14:19
...ja x ist ein vorher berechneter Wert und liegt im Bereich (je nach Eingabe) zwischen ca.100 und ca.3000...
bis dann