Programmierstil auf Raspberry Pi

  • Hallo,


    möchte ich gerne wieder etwas nach Feierabend mit dem Raspberry beschäftigen. Nun stellt sich mir aber eine Frage, welche eher plattformabhängig ist. Gibt es eine gute Anleitung für C auf dem Raspberry Pi. Ich nutzte als Lib für C die PiGPIO. Möchte aber auf einige in meinen Augen unnötigen Funktionen verzichten.


    Bislang habe ich in C fast ausschließlich AVRs programmiert (ohne Arduino). Dort gibt es ja gerade zum Raspberry in meinen Augen einen grundlegenden unterschied. Auf einem AVR, der immer nur einen Task abarbeiten kann, war ein _delay_ms(x) nur an wenigen Stellen sinnig. Dort habe ich mit Timern die "millis()" Funktion nachgebildet. Somit hatte ich einen sehr schön schnellen Durchlauf.


    Nun hatte ich aber auf dem Raspberry Pi irgendwann mal festgestellt, ich hoffe ich irre mich da jetzt nicht, dass solche Möglichkeiten hier kontraproduktiv sind. Denn die Auslastung auf dem Pi wird dann aufrecht erhalten. Sinnvoller wäre dort, den Pi/Prozess mit sleep o.ä. kurz zu pausieren. Mir geht es nicht um super genaue Timings. Wenn das ganze sich im kleinen Millisekundenbereich verhält wäre das ausreichend.


    Lektüre mit dem Oberbegriff C brauche ich nicht. Da stehen genügend Schinken im Regal. Mir geht es hier eher um die Ausfürung auf dem Raspberry.

  • Hallo sschultewolter,
    den Pi würde ich beim Programmieren nicht mit einem AVR vergleichen, sondern mit einem Konsolenprogramm auf dem PC. Der Pi hat (im normalfall) ein kompletten Betriebssystem mit vielen Tasks und die neueren Modelle sogar einen multicore CPU.
    Das Delay_ms wird hier durch ein sleep ersetzt, was dem Scheduler erlaubt den task schalfen zu schicken und andere Aufgaben auszuführen.


    Gruß
    Chris

  • Nach einigen Ausflügen zu Qt und C++ bin ich bei Lazarus mit dem FPC gelandet. Das ist halt Pascal / Delphi, was mir persönlich von der Syntax deutlich besser zusagt als C/C++, zumal objektorientiere Programmierung bei Mess- und Steueraufgaben oft prozeduraler Programmierung eh unterlegen ist.


    Das Geniale ist: Programme - ausser sie verwenden echt Raspberry-spezifische Funktionen wie die GPIOs oder I2C - kann man unter Windows oder Linux schreiben und testen, und dann direkt auf dem Raspi für den Raspi kompilieren. Man kann theoretisch auch unter Windows für den Raspi kompilieren, aber das habe ich mir nicht eingerichtet.


    Was ich bisher mit Lazarus umgesetzt habe: Zugriff auf GPIOs, Zugriff auf serielle Schnittstelle, Monitoren meiner Heizungssteuerung, Datenerfassung und Speicherung, Aufbereiten von Diagrammen für Webseite, Monitoren und rudimentäre Haussteuerung, Benachrichtigen bei Ereignissen über Telegram.

  • Du suchst ein Buch bzw. Information für das allgemeine Vorgehen bei Betriebssystemen?
    Also Prozesse / Threads / Scheduler / MMU / Speichersegmente (Stack, Heap, Datensegment, Codesegment) / Roundrobin / Prioritäten / etc. ?

    Edited once, last by Semetex ().