Forum: Mikrocontroller und Digitale Elektronik Kann man microcontroller mit PHP programmieren?


von Patrick (Gast)


Lesenswert?

Hallo,

über den Sinn dieses Vorhabens kann man natürlich lange diskutieren aber 
da ich nur PHP kann wollte ich mal fragen ob es eine Möglichkeit gibt 
Microcontroller mit PHP zu programmieren.

Wenn nicht welche Sprache für Microcontroller  kommt PHP am nähesten ?

Danke schonmal für eure Hilfe.

von Frank K. (fchk)


Lesenswert?

Patrick schrieb:

> über den Sinn dieses Vorhabens kann man natürlich lange diskutieren aber
> da ich nur PHP kann wollte ich mal fragen ob es eine Möglichkeit gibt
> Microcontroller mit PHP zu programmieren.

Nein. Dafür verwendet man C.

fchk

von Manu (Gast)


Lesenswert?

Im Prinzip kann man einen µC nur in Maschinensprache programmieren, 
alles andere wird durch einen Compiler/Assembler in Maschinensprache 
übersetzt. Man kann also in jeder Sprache für die man einen Compiler hat 
programmieren.

Ich habe mich vor ca. 1 Jahr kurz mit PHP beschäftigt und dabei sind mir 
viele Ähnlichkeiten mit C aufgefallen.

von Dirk K. (dekoepi)


Lesenswert?

Nur, weil noch niemand 'nen PHP-Interpreter portiert hat in die 
klassischen 32kByte Flash und die 2-4kByte RAM ...

Wenn schon Blödsinn, dann nimm' doch JavaScript; ist leider nicht ganz 
so kaputt wie PHP, aber stößt in vergleichbare Sphären vor:
http://www.heise.de/hardware-hacks/artikel/Espruino-JavaScript-ganz-weit-unten-2132781.html

von Roland P. (pram)


Lesenswert?

Doch, PHP geht, sofern du den Interpreter darauf zum laufen bekommst 
(für AVRs z. B. so 
http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit 
)... Macht aber keinen Sinn, verwende C und Javascript/json um Web 
Frontends zu bauen.

Gruß Roland

von Amateur (Gast)


Lesenswert?

Das ist eine Frage der Interpretation:

Nimm einen µC mit aufgesetztem Linux. Die gibt's wie Sand am Meer.
Da findest Du bestimmt auch einen funktionierenden Compiler.

Direkt und auf unterster Ebene, so wie es hier üblicherweise verstanden 
wird:
Nein, ist auch nicht besonders sinnvoll. Viele µC würden schon bei den 
nötigen Bibliotheken einen Schluckauf bekommen.

von Max H. (hartl192)


Lesenswert?

Willst du eigentlich das Programm für den µC in PHP schreiben oder auf 
dem µC eine Website hosten die PHP verwenden?

Für µC würde ich C empfehlen.
Zitat Wikipedia[1]:
> PHP (rekursives Akronym und Backronym für „PHP: Hypertext
> Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine
> Skriptsprache mit einer an C und Perl angelehnten Syntax
                             ^
                             |

[1] https://de.wikipedia.org/wiki/PHP

von Bernd K. (prof7bit)


Lesenswert?

Patrick schrieb:
> da ich nur PHP kann wollte ich mal

Was hindert Dich daran eine besser geeignete Sprache zu lernen? Du hast 
Doch auch irgendwann mal PHP gelernt, wenn also seitdem niemand 
versehentlich den Schreibschutz an Deinem Gehirn aktiviert hat müssten 
doch noch ein paar zusätzliche Sprachen reingehen, oder?

von Patrick (Gast)


Lesenswert?

Ich merke schon mit meinem PHP komme ich nicht weit also werde ich 
erstmal die Grundlagen von C lernen.

Ich dachte halt nur  warum extra was neues lernen wenn es auch so geht, 
aber dem ist ja wie es aussieht nicht der Fall.

Vielen dank für eure Hilfe

von Stephan (Gast)


Lesenswert?

Für PHP brauchts schon ein Linux-geeignetes Board. Speicherverwaltung, 
etc.

Die kleinen µC haben max. ein paar kB Speicher und keine Mechanismen für 
eine dynamische Verwaltung. Da muss dann mindestens klar sein wie viel 
Speicher eine Variable belegt (max. belegen kann). Bei PHP kann eine 
Variable ja mal Boolean und dann wieder ein ganzes Buch sein.

Gibt reichlich einfache IDEs für µC (Arduino?). Um was zu lernen ist der 
etwas schwerere Weg (C) aber sinnvoller.

Stephan

von Fpgakuechle K. (Gast)


Lesenswert?

Patrick schrieb:
> Hallo,
>
> über den Sinn dieses Vorhabens kann man natürlich lange diskutieren aber
> da ich nur PHP kann wollte ich mal fragen ob es eine Möglichkeit gibt
> Microcontroller mit PHP zu programmieren.

Wie ist die interruptbehamdlung in PHP realisiert? Kennt PHP ein 
Equivalent zu volatile? Ist Inline-Assembler möglich? Gibt es eine PHP 
standardbibliothek mit routinen wie sleep()?

MfG,

von Paul H. (powl)


Lesenswert?

Patrick schrieb:
> Ich merke schon mit meinem PHP komme ich nicht weit also werde ich
> erstmal die Grundlagen von C lernen.
>
> Ich dachte halt nur  warum extra was neues lernen wenn es auch so geht,
> aber dem ist ja wie es aussieht nicht der Fall.
>
> Vielen dank für eure Hilfe

Abgesehen dass das Wissen über C nicht umsonst sein wird, allein schon 
weil es deinen Horizont etwas erweitert, würde es genau so lange dauern 
einen PHP-Interpreter/Compiler + µC-Architektur zu finden und zum laufen 
zu bringen.

Wenn du eher Gelegenheitsprogrammierer bist und einen harten Einstieg 
scheust, schau dir mal die Arduinos an. Die bieten dir auch die 
Möglichkeit irgendwann mal tiefer einzusteigen ohne das bisherige Wissen 
über den Haufen zu werden.

von Optimist (Gast)


Lesenswert?

Gehen tut das schon...

Man nehme einen AVR, starte darauf einen ARM-Emulator, boote ein Linux, 
und starte einen Apache und schon kann man einen kleinen AVR in PHP 
programmieren.

http://dmitry.co/index.php?p=./04.Thoughts/07.%20Linux%20on%208bit

Ist halt nicht besonders schnell.

von uC (Gast)


Lesenswert?

Wenn du schnell "Erfolge" haben willst nimm erstmal Arduino und dessen 
IDE und spiel ein paar Beispiele von denen durch / und schreib da 
"sketche" (c++). Ist extra einfach gehalten und c++ Klassen musst du da 
nicht schreiben, dass haben die für dich gemacht. Du spielst dann mit 
High-Level-Bibliotheken rum, hast dafür aber keine Ahnung wie der 
Controller wirklich funktioniert, was z.B. ein Register ist...

Außderdem bist du an existierende Blibliotheken für die 
Elektronik/Sensoren/Displays/Motor-Shields, die du verwenden willst 
angewiesen, wenn du nicht tiefer einseigen willst und dir mal eben 
selbst ne Bib. schreiben willst.

Ein Arduino ist nix weiter als ein AVR Board das so konzipiert ist, mit 
dessen IDE zu funktioniern. Man kann ihn auch direkt mit avr-gcc 
programmieren.

Vorsicht: Es gibt auch größere Arduinos, die keinen AVR drauf haben, 
sondern ne ARM-Kanone oderso...
Also nehm den arduino nano v3 oder den Arduino Uno R3 (arduino clones 
gibs auch günstig bei ebay aus china), je nachdem wo dir mehr einer nach 
abgeht.

P.S. Arduinos werden hier von einigen runtergemacht wegen der ganzen 
Noobs die hier ankommen und trivialprobleme haben weil sie ein riesiges 
Halbwissen über uC und programmieren haben.

So nach dem Motto: Der bezeichnet sich als Autokenner und 'Profi', weil 
er unfallfrei fährt und die Markennamen auswendig kennt, hat aber schon 
keine Ahnung mehr, wie man ein Rad wechselt ohne Legotechnik-Anleitung 
für siebenjährige dabei.

von M. M. (blackcow)


Lesenswert?

Kann man auf einem Attiny Windows 8 laufen lassen?

von Ulrich F. (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> Wie ist die interruptbehamdlung in PHP realisiert? Kennt PHP ein
> Equivalent zu volatile? Ist Inline-Assembler möglich? Gibt es eine PHP
> standardbibliothek mit routinen wie sleep()?
1. gar nicht
2. nein
3. nein
4. sleep() gibts, sleep() gibt Rechenzeit ans OS ab.

PHP kannst du knicken.
PHP ist mit Absicht Hardware fern geschrieben.
Es soll ja schließlich auf jedem Server dieser Welt laufen können.
PHP braucht ein zugrundeliegendes Betriebssystem, Linux (eigentlich ein 
beliebiges UNIXOIDES System), Windows, Solaris ....

von Löxx (Gast)


Lesenswert?

Python gäbe es für den STM32.

von Purzel H. (hacky)


Lesenswert?

PHP is eine der katastrophösesten Sprachen, resp Impementierungen 
ueberhaupt. Voll krass. Wenn ich auf einem Server eine brauchbare 
Alternative haette, wuerde ich schreiend davon rennen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.