PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PICAXE und BASIC Befehlsliste > BASIC Commands



jon2005
12.08.2005, 22:42
Hallo Leute

ich arbeite seit geraumer Zeit mit den wirklich phantastischen PICAXE-08M und den -18X. Das macht richtig Spaß mit dem Mikrokontroller, und ich habe schon viele Programme geschrieben.

Was mir nun auffiel ist, daß nach der original englischen Befehlsliste einige Basic_Befehle innerhalb einer Programmroutine nicht angenommen werden.
Wer von Euch hat das auch schon festgestellt ?
Bitte melden, damit wir uns austauschen können.

Hier mal ein Beispiel:

{LET} variable = {-} value ?? value ...

setze ich z.B.: let x = 1/2

und will diesen Parameter in einer späteren Formel weiterverarbeiten, tut sich nichts.

Setze ich dagegen: let = 1,2,3 also ganzzahlige ein, dann klappts !

oder: let x= 1.5 geht auch nicht, obwohl es angegeben wird.

> Original Basic Commands (S.13) steht: let w1 = w2 / 5.7
also müßte es doch mit dem Punkt (Komma) gehen ?

Gruß Jon

Zentauro
13.08.2005, 12:52
vielleicht liegt es daran, dass der uC keinen floating point prozessor besitzt und somit nur ganzzahlige werte (integer) verarbeiten kann...

ich bin mir fast sicher, wenn du schreibst
b0 = 5/2,
dass da 2 raus kommt und das 0,5 wegen des integers weggeschnitten ist...

mfg

13.08.2005, 14:00
Hallo,
ja das kann durchaus sein, das mit dem Floatingpointprozessor.
Aber wenn ich im Originalbefehlstext nachlese, dann muss das funktionieren, oder es gibt zweierlei µP, die einen die das verarbeiten können (neuere) , und die anderen die diesen Punkt noch nicht richtig interpretieren (ältere) können.

http://www.rev-ed.co.uk/images/full/8pin.jpg
Hier mal die Handbuchseiten:
# PICAXE Manual - Section 1 - Getting Started
http://www.rev-ed.co.uk/docs/picaxe_manual1.pdf
# PICAXE Manual - Section 2 - BASIC Commands
http://www.rev-ed.co.uk/docs/picaxe_manual2.pdf
# PICAXE Manual - Section 3 - Interfacing circuits
http://www.rev-ed.co.uk/docs/picaxe_manual3.pdf
# PICAXE-18 Tutorial
http://www.rev-ed.co.uk/docs/axe002_tutorial.pdf

Im Handbuch Basic Commands Seite 41 steht der Befehl "let" wo auch Angaben zu Zahlen sind, die Kommawerte enthalten. Dieser Befehl gilt laut Angabe für alle PICAXE Typen.

Gruß

13.08.2005, 16:42
Hallo,

auf der zitierten Seite 41 (Basic Commands) steht:


The microcontroller supports word (16 bit) mathematics. Valid integers are 0 to
65335. All mathematics can also be performed on byte (8 bit) variables (0-255).
The microcontroller does not support fractions or negative numbers.

However it is sometimes possible to rewrite equations to use integers instead of
fractions, e.g.
let w1 = w2 / 5.7
is not valid, but
let w1 = w2 * 10 / 57
is mathematically equal and valid.


Das heißt eben dass es nicht geht. Bei allen PICAXE wird nur die Integerarithmetik unterstützt, was ja in den meisten Fällen auch ausreicht.
Operationen mit gebrochenen Zahlen werden definitiv nicht angeboten.

Viele Grüße
Jörg

13.08.2005, 18:03
Hallo Gast,
da habe ich doch tatsächlich etwas übersehen, bzw. nicht alles so übersetzt, daß mir das dann aufgefallen wäre. O:) Danke, ich wusste, daß es hier Hilfe gibt, und 4 Augen sehen bekanntlich mehr als zwei. Vielleicht gibt es doch noch eine andere Möglichkeit solche mathematischen Zusammenhänge zu umgehen.

Gruß Jon