PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PICAXE 18m2 und oder 20x2 und Binärcode, bin am verzweifeln?



jon2005
26.06.2011, 20:10
Hallo Leute,
ich habe nach ein paar Jahren wieder mal die englische Picaxeseite
aufgerufen, und festgestellt, dass es neue PICAXE Typen gibt.
Das hat mich wieder dazu gebracht, neue Ideen zu verwirklichen.

Da ich auch diese neue Typen (M und M2 und X2) testen möchte
habe ich gleich in UK bestellt. Viel billiger (teilweise um 75%) als hier
beim Deutschen Distributor und schnell dazu. AAuch die Vielfalt
der Typen sind mehrere.

Also, ich habe wie gesagt längere Zeit nicht mehr damit gearbeitet
und stehe jetzt auf dem Schlauch, was die binäre Eingaben der
Pins bedeutet. Ich weis was binär zu dezimal heisst, aber wenn ich
das auf den Picaxe anwende, blicke ich z. Z. nicht durch.

Es geht mir um Folgendes bei der Anwendung mit dem
PICAXE 18m2 und dem PICAXE 20X2.

Da man bei diesen Typen nun die IN-OUT Pins selbst definieren kann,
muss man das mit dem letpins Befehl zuvor definieren.
Im Picaxe-manual 1 auf Seite 138 steht folgende Bedingung:

Example:
let pins = %10000011 ; switch outputs 7,0,1 on
pause 1000 ; wait 1 second
let pins = %00000000 ; switch all outputs off

So, und wie ordnet man nun die Pins diesem Binärcode zu?

Wenn ich einen Pin oder einen Ein-Ausgang z. B. den
Pin18 von PICAXE-18M2 der als Ein oder Ausgang frei definiert
werden kann, in binär umrechen möchte, wie geht das?

10000011 ist dezimal ja 131, und wie kommt man da auf 7,0,1?
Ich stehe auf dem Schlauch, wenn ich einen x-beliebigen Pin
zu einer Binärzahl zuordnen soll.

Konkret: Welche Binärzahl soll ich dem Pin17 bspw. zuordnen
um ihn als Eingang bzw. IN zu definieren?
%???

Bitte um Hilfestellung
LGe Jo

Hier ein paar nützliche Links:
Revolution Education Ltd (http://www.rev-ed.co.uk/picaxe/) (Hersteller der PICAXE in England bzw. UK)
Picaxe Softwareübersicht (http://www.rev-ed.co.uk/picaxe/software.htm)
The online PICAXE and technology store (http://www.techsupplies.co.uk/) (Einkauf der PICAXE supergünstig und schnell)
Picaxe Electronic Bread Board Layout Emulator (http://www.rev-ed.co.uk/picaxe/pebble/) (Online Layoutbestückung)
Picaxe Softwaresimulationen (http://www.picaxevsm.com/)

Verzweifeln? nein ganz sicher nichthttps://www.roboternetz.de/community/images/icons/icon7.png

Joe-C
30.06.2011, 20:27
Moin,

ich nutze den 18M2 und definiere die Eingänge einfach so:
input C.0,C.1,C.2
Ich behaupte mal, dass es beim 20X2 genauso funktioniert.
Die "let" Anweisung ist meinem Wissen nach für arithmetische Berechnungen.
Ich hab sie jedenfalls nur in Berechnungen drin und funktioniert hat es bisher auch wie es sollte.
Es geht natürlich auch mit dem Pins oder Dirs Befehl, nur legt man da immer den ganzen Port fest.
Beispiel für den 18M2:
dirsB = 255 (B.0-B.7 sind nun Ausgänge)
pinsB = 128 (B.7 ist High, B.0-B.6 ist Low)
pinsB = %10000000 (genau wie das darüber)
Die binäre Angabe kann auch als Dezimalzahl angegeben werden, aber Binär ist einfacher. Die Position im Binärcode entspricht dann der Pinnummer.

Ich rate dennoch mit Input oder Output in der Deklaration zu arbeiten, da es einfacher ist und wenig zu Fehlinterpretation neigt.
Bei meinem I2C I/O Expander wird die Direktion auch so festgelegt, dort gilt die 1 aber als Input.



Konkret: Welche Binärzahl soll ich dem Pin17 bspw. zuordnen
um ihn als Eingang bzw. IN zu definieren?
%???


Nach dem Datenblatt vom 20X2 ist Pin17 = B.1
Die Antwort müsste also "dirsB = %00000010" sein, wenn ich nicht falsch liege.
MFG
Joe-c

jon2005
30.06.2011, 20:54
Hallo !
endlich mal ne Nachricht, auch wenn ich sie so wie du angegeben hast, bereits realisiert habe.
Trotzdem stehe ich, was die Binärangabe betrifft, weiterhin auf dem Schlauch.
Wenn ich den Pin17 in binäcode umrechne erhalte ich: 10001
Und wie kommt man nun auf 000010???
Findest du nicht auch, dass in solchen Foren eine Chateinrichtung fehlt, um schnell und
effizient bei wichtigen Fragen zu Diskutieren!?
Gruß Jon




Nach dem Datenblatt vom 20X2 ist Pin17 = B.1
Die Antwort müsste also "dirsB = 000010" sein, wenn ich nicht falsch liege.
MFG
Joe-c

Joe-C
01.07.2011, 01:21
Moin,

Ja ne Chatfunktion hätte was, aber wie ich soeben erfahren habe, bekommt man eine Mail wenn auf eine Nachricht geantwortet wurde. Das reicht ja meistens schon aus ;)

Ich habe mich mit den Binärcodes nicht sonderlich tief auseinandergesetzt.
Daher sind die folgenden Behauptungen eher Vermutungen...

also der Picaxe hat ja 2 Bezeichnungen am Pin.
Die eine ist die übliche fortlaufende Anschlussbezeichnung (Pin1,Pin2,Pin3...),
die Zweite, ist die Portbezeichnung, die auch beim Programmieren meistens angesprochen wird (A.0,B.5,C.3...).
Ein Port (A,B oder C) hat genau 8 Bit. Im Datenblatt sieht man, dass der Pin17 in diesem Fall B.1 heißt, es also der zweite aus dem Port B ist. Wenn man nun alle Pins mit einmal festlegen möchte, nimmt man die "dirs" Funktion und legt alle 8 Pins eines Ports auf einmal fest.
In diesem Fall Port B (Pin18-Pin11).

Wenn man also Beispielsweise "dirsC = 3" eingeben würde (oder "dirsC = %00000011") dann würden die zwei untersten Pins von Port C als OUT alle anderen als IN deklariert sein.
Pin 9 und 10 (C.0 und C.1) sind dann Ausgänge und die Pins 8-3 (C.2-C.7) sind Eingänge.

MFG
joe-c

jon2005
01.07.2011, 07:05
Moin moin Joe-C,
wenn ich mich nicht täusche, dann kommst du aus dem hohen Norden?

Also, ich stand da wirklich auf der Leitung, anderst kann man es nicht sagen!

Dein Post hat mich aufgeweck, denn mein Gedanke war, dass man irgend etwas
von Dez. nach Binär bei den Pins oder Ports umrechnen muss.
Dem ist nicht so, denn man muss lediglich die Bitstelle von rechts nach links
zum Port in Vergleich setzen, und schon hat man das Ergebnis.
Mich hat das geärgert, denn die Umrechnungen sind mir wohl bekannt, und
es ist auch mathematisch einfach. Nur passte es hier hinten und vorne nicht.

Example:

Port B.0 (Bit 0=1 setzen) als Output-Pin setzen:
000001
Bit 0-7= 8 Bits
Wobei Bit 7 links steht, und Bit 0 rechts steht.

Port B.0 (Bit 0=0 setzen) als Input-Pin setzen:
000000

Alle Pins bzw. Ports (alle Bits =1 setzen)als Output setzen:
111111
exakter:
Let DirsB= 111111
usw. usw.

Das war ja Pipifax!;)
Mich wunderts, dass so wenig darauf geantwortet haben, aber du hast den
Stein ins Rollen gebracht, und mir den richtigen Denkanstoß geliefert.

Herzlichen Dank und ein schönes Wochenende, was wohl nur im Süden,
wo ich wohne, -rein sonnenstundenmäßig gesehen-, der Fall sein wird.
Lge jon

Joe-C
01.07.2011, 11:42
Moinsen,

ich komme aus Berlin, aber hoher norden passt schon... is ja eh alles relativ ;)

Warum so wenig geantwortet haben, kann ich mir gut vorstellen. Zum einen schaut man ja nicht ständig ins Forum, sondern eben nur, wenn man Zeit dazu hat... wir Bastler haben ja des öfteren mal ein Zeitproblem ;)
Des weiteren, was denke ich sogar noch wichtiger ist... der PICAXE ist nicht sehr populär. Hätte deine Frage einen Microchip oder einen Atmel betroffen, hätten sich bestimmt mehr gemeldet.

Ich taste mich gerade an den Microchip ran. Der PICAXE ist für den Einstieg ganz nett, vor allem, weil man keinen extra Programmierer braucht.
In seiner Mindestbeschaltung braucht er nur 2 Widerstände und schon kann man ihn programmieren und recht vielseitig nutzen.
Die Microchips brauchen (zumindest einige) da schon mehr. Dafür kann man aber auch für kleinere Aufgaben die teile für unter 1 Euro bekommen.

Aber wie gesagt, noch ist der PICAXE nicht sonderlich populär.

MFG und schönes WE
joe-c

jon2005
01.07.2011, 13:29
Hallo !
Ja, das weis ich mit der PICAXE, aber wenn man nach Uk oder nach USA sieht, oder auch nach Australien,
dann bemekert man schnell, das sich da sehr viele damit beschäftigen. Ich weis nicht wieviele tausend
Seiten ich aus dem Internet als PDF gedaownloaded habe, und es werden täglich mehr. Das ist ein
Wissenschatz, den ich auch bei der PICAXE nicht mehr missen möchte.

Ich kenne die PICAXE fast seit Beginn an, kam aber mal ein paar Jahre nicht dazu, mit diesem Teil etwas
zu Testen. Vor ca. 5 Jahren habe ich schon Projekte mit PWM Ansteuerung von DC Motoren und Schritt-
motoren realisiert, die es in sich hatten. Nun ist ja der Befehlssatz deutlich erweitert worden und man
kann jetzt auch interruptfähige Funktionen programmieren und auch parallel Tasks mit einbinden.
Also, wenn man alle Befehle aus dem FF kennt, kann man fast alles damit anstellen.
LGe

juergenfun
16.06.2014, 20:58
Hallo bin leider nur ein Anfänger aber schaue doch mal hier bei dieser seite noch ist vielleicht Informativ füür dich

http://www.strippenstrolch.de/menue-5.html :):rolleyes: ich hoffe ich kann dier damit weiter helfen