Zurück zum Menü 5

5.1.16 Die Besonderheit gegenüber einem "nackten" PIC

Erstellt ab: 29.09.2018



Normale Mikrocontroller verstehen nur Maschinencode, also nur Einsen und Nullen. Jede Kombination davon, die im sogenannten Maschinenprogramm steht, wird von der internen ALU ("Arithmetisch-Logische-Einheit") (Einheit heißt im Englischen "Unit") als ein Maschinenbefehl gewertet und sogleich ausgeführt. Dabei muss man unterscheiden, dass es Maschinenbefehle gibt, die mehrere Bytes intereinander gebrauchen und solche, die nur ein Byte lang sind.



Bei einem PIC kann man von einem 8-Bit-RISC-Prozessor ausgehen, der im Inneren des Chips werkelt. "RISC" bedeutet dabei "reduced instruction set computer", also versteht die interne CPU ("central processing unit") nur einen eingeschränkten Befehlssatz.

Das hört sich erstmal schlimm an, ist es aber nicht, denn durch den eingeschränkten Befehlssatz wird die CPU extrem schnell, weil fast jeder Befehl dann nur ein Byte lang ist und somit auch mit nur einem Maschinentakt ausgeführt wird.

Nun ist es bei einem PIC aber so, dass dieser Baustein auch in seiner "Urform" mindestens in Assembler programmiert wird, schlichtweg, um die Programmierzeit für den Anwnder etwas kürzer und komfortabler zu gestalten.

Bei der Assemblersprache wird einfach nur jedem Maschinenbefehl ein dreistelliger Buchstabencode zugeordnet, den der Programmierer einfacher auswendig lernen kann, als die Kolonnen von einsen und Nullen. Es muss aber nicht zwingend Assembler sein, denn es gibt auch PC-Programme, die z.B. BASIC in die Maschinensequenzen übersetzen und dann auf den Chip hoch laden.

Im folgenden Bild ist ein Beispiel für ein BASC-System angegeben:



Wie wir sehen, wird der BASIC-Quelltext hierbei schlicht in die entsprechenden Maschinenbefehle übersetzt ("compiliert") und dann über ein dreiadriges Interface an den Mikrocontroller weitergegeben. Solch ein System, bei dem die Compilierung außerhalb der Laufzeit des Programms (nämlich vorher, beim Upload) stattfindet, nennt man "Compiler-System".

Heutige Compiler schaffen die Compilierung zumeist in einem einzigen Durchgang und in sehr kurzer Zeit.
Damals, so um die 1985er Jahre, benötigte ein Compiler noch mindestens 2 Durchgänge und teilweise recht viel Zeit dazu.

Die Zeit, die solch ein Compiler benötigt, ist im Prinzip egal, denn es wird ja das Maschinenprogramm erzeugt, bevor es auf dem Mikrocontroller läuft, und auch nur ein mal.

Das Besondere an der PICAXE:

Die Pixace hingegen wird mit sogenannten "Basic-Token" "gefüttert". Hierbei übersetzt der Editor (Das "Programmier-Programm" auf dem PC jeden BASIC-Befehl in ein entsprechendes Token. Diese Token sind also ein "Zwischencode", der dann in den internen Speicher der PICAXE geladen wird.

Die Picaxe wiederum schaut nun während der Laufzeit (also während das Programm ausgeführt wird) jedes Token in einer internen Liste nach und führt die dort hinterlegten Maschinenbefehle aus. Es interpretiert also die Token.
Solch ein System nennt man "Interpreter-System".

Im folgenden Schaubild ist das einmal zu sehen:



Der Nachteil liegt eigentlich deutlich auf der Hand. Ein Interpreter-System ist langsamer als ein Compiler-System, denn es muss ja intern immer nochmal jedes einzelne Token übersetzt werden, was Rechenzeit benötigt.

Das ist auch der Grund, warum die meisten Anwender in Deutschland auf den AVR (schlicht nur eine andere Hersteller-Firma mit einem ähnmlichen µC, jedoch ein Compiler-System) ausweichen. In Deutschland ist es auch in 2018 immernoch "Mode" partout alles aus einem System "herauszukitzeln" was geht. Oft schert man sich auch überhaupt nicht darum, ob das "Optimieren" Sinn macht, oder nicht. Dabei allerdings gehen die Programmierkosten oft in astronomische Höhen.

Dabei liegt dem Interpreter-System der Picaxe ein sehr großer Vorteil zugrunde:

Man braucht sich überhaupt nicht um die Interna des Chips kümmern (also z.B. Register, Fusebits, ALU, Speicher, Eingabe- und Ausgabevorbereitungen usw.

In anderen Ländern haben die Schulen die Picaxe schon seit über einem Jahrzehnt für sich entdeckt, während die Schüler in Deutschland auch in 2018 immernoch mit teilweise sehr schwierig zu handhabenden Compilern "gequlält" werden, die zudem noch nicht einmal einheitlich sind. Noch nicht einmal im eigenen Bundesland.

Hier werden die deutschen Schüler also locker von denen im Ausland überholt und abgehängt, weil sich hierzulande zu wenig Interessenten finden. Das ist ja auch kein Wunder, wenn man den Ballast der Unterrichtseinheiten künstlich in die Höhe schraubt, anstatt einfach zur Picaxe zu greifen.

Vielleicht ist es auch "Politik", denn die Picaxe wird in England angeboten:

http://www.picaxe.com/

Es gibt aber auch ein deutsches Geschäft für diese Controller:

http://www.picaxe-shop.de/



Ich bedanke mich für die Aufmerksamkeit,






Nach oben            Zurück zum Menü 5