PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mysteriöses Bascom-Schleifenproblem...



tobimc
29.01.2006, 22:42
Hi!

"Juchu", ich habe auch mal wieder ein Problem.
Ich möchte vorrausschicken, ich habe upgedatet, auf ...8.2.

Nun führt der AVR meine schönen Schleifen nichtmehr aus, obwohl die schonmal gefunzt haben...!


Print "...Fertig. Bitte auf Aufnahmemodus schalten.. T = -5 s"

Wait 5 'warten

Address = 0
A = 0

'(

For Address = 0 To 15750 Step 1
'For Address = 15750 To 31494

A = Readram(address , 0)
Printbin A

Print Str(address)

Waitms 5

Next

')

Do

Incr Address
A = Readram(address , 0)
Printbin A

Print Str(address)

Waitms 5

Loop Until Address < 15750




Wait 5

Print "fertig juchuu"

Das sind 2 Versuche für eine Schleife (die obere ist zwar auskommentiert, hat aber auch nicht gefunzt), die 15750 mal durchlaufen soll.
Address ist eine WORD-Variable. (A ist Byte)
Readram ist meine Funktion zum lesen aus meinem SRAM.
Nun, er durchläuft diese Schleifen gerade 1 mal.

Er gibt ein mal das vom Speicher gelesene, und dann die Adresse(immer 1) aus.

Eigentlich sollte er mir meinen Speicherinhalt wiederkäuen, aber das tut er nicht.

Irgendwie habe ich ja das Gefühl, dass das an der .2 liegt...
Zumal der Compiler keine Fehler anzeigt.

Bin da etwas am Ende mit meinem Latein...

Achso...


'================================================= ===========================
' Compiler Options
$regfile = "m16def.dat" 'ATmega8-Deklarationen
$crystal = 16000000 'Quarz: 3,6864 MHz
$baud = 19200 'Baudrate der UART: 9600 Baud

$hwstack = 64
$swstack = 32
$framesize = 32

Diese Lib mit den kleineren Funktionen habe ich nicht eingebunden.

Ich weis nicht was da falsch läuft...!

Danke schonmal,
VLG Tobi

x-ryder
29.01.2006, 23:11
also die unter mit der do-loop kombi kann ja schonmal wirklich nicht funzen...

minne minne minne du, den fehler hätteste auch selber finden können ^^

Loop Until Address < 15750

das heißt umgangssprachlich: mach das bis Address kleiner als 15750 ist, also das wird er ja wohl beim startwert 0 immer sein nehme ich an? ^^ das zeichen muss ein > sein und nicht ein < ^^

bei der ersten möglichkeit denk ich noch dran

Martin

digitali
29.01.2006, 23:35
Hm, die erste Schleife funzt nur wenn man Address als Integer oder Long deklariert. Bei Word geht's nicht.

coder_x
30.01.2006, 01:09
Hi Leut's
Den Fehler mit der FOR - Schleife mit Word-Variable hatte ich vor zwei Tagen bei "Mark" gemeldet.
Es liegt nun eine gepatchte Version 1.11.8.2 auf dem Server.
Also License-Datei ins Hauptverzeichnis und den Update-Wizzard gestartet,dann ist alles wieder OK O:)

Peter

tobimc
30.01.2006, 13:58
Hi!

oops.. das mit dem until... ich bin da immer bei do while, schreibe aber was völlig anderes...

...eben Aber es muss ja auch mit word gehen. Ich werde mal die gepatchte Version ziehen...

VLG Tobi

PicNick
30.01.2006, 15:30
Tobi, kannst du mal deine komplette Source posten ?
Ich hab mir den mit 1.11.8.1 gfenerierten Code angesehen und seh da eigentlich mal keinen Fehler vom Bascom (beide Schleifen)

tobimc
30.01.2006, 19:57
HI!

Es lag tatsächlich an er Bascomversion...
Läuft jetzt alles wieder Paletti!

thanks@all

(Code ist für Jufo... :( )

VLG Tobi

tobimc
02.02.2006, 16:05
HI

Es gab nochmals ein Problem mit der Step-Anweisung.

Mark hats wie ein geölter Blitz gefixt. Ein neues Update für die 8.2 ist jetzt per Updatewizard erreichbar.

VLG Tobi