- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Programmierung >>> Raspberry Pi vs. AVR-uC

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    130

    Programmierung >>> Raspberry Pi vs. AVR-uC

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo zusammen.

    Beschäftige mich gelegentlich mit der Programmierung von AVR-uC (Bsp. ATTiny84) in C. Vorwiegend für Steuerungen, wie analoge/binäre Ein-/Ausgänge.
    Hierzu nutze ich als Editor und Compiler das Atmel Studio 7.

    Aus Hardwaregründen liebäugel ich mit dem Raspberry Pi -System. Hier ist schon alles On-Board in kleinster Bauform. Bsp: Zero, 3B

    Wie unterscheidet sich die Programmierung?
    Sind auch im RPi-uC, Interrupts möglich?
    Ist hier die Hochsprache C, 1:1 übertragbar?
    Gibt es innerhalb der RP-uC´s Programmierunterschiede? Unabhängig von den externen Hardware-Möglichkeiten wie WLan, etc.

    Wäre schön, wenn ihr mir schon einmal eine grobe Übersicht an die Hand gebt.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Hallo,

    also in einer kurzen Antwort wird man das nicht erschöpfend beantworten können. Aber ich fange schon mal an:

    Erstmal sprichts du von uCs, also vermutlich Microcontrollern. Rein formal sind die Chips auf den Raspis schon mal keine, sondern SoCs, Systems on a Chip. Die Prozesoren haben ARM-Cortex A Kerne, also Microprozessoren, keine Microcontroller, dass wären Cortex-M.

    Normalerweise läuft auf solchen Prozessoren immer ein Betriebssystem, man kann nicht mit nackter Registerprogrammierung arbeiten. Meist ist das Betriebssystem auf dem Raspi Linux, es gehen aber auch andere inklusive Windows 10.

  3. #3
    HaWe
    Gast
    hallo,
    du programmierst den Pi am besten entweder in C/C++ (gcc) oder in Python.
    Für die GPIOs verwendest du am besten Libs wie wiringPi (C und Python) oder pigpio (C); Interrupts sind möglich, auch WiFi, BT, USB usw. - du kannst aber auch die file-IO bzw. BCM-Funktionen verwenden (etwas umständlicher).
    Wenn du einen kurzen Überblick über C/C++ Programmierung incl. Vorbereitungen sehen möchtest, guck mal hier:
    https://github.com/dsyleixa/Raspberr...uide_Raspi.pdf
    (für absolute Einsteiger geschrieben, teilw. stark vereinfacht, ursprünglich für Pi2 und Jessie konzipiert, aber grundsätzlich auch gültig z.B. für Pi3 und Stretch)

    Bei C/C++ handelt es sich um gcc/gpp in veschiedenen verfügbaren Versionen (Stretch: vorinstalliert ab 6.3, selber nachinstallierbar auch bis zu vers. 9) mit offiziellen ANSI/ISO-Standards (C99, C11, C++14 bzw. 17), Python steht in Versionen 2 und 3 vorinstalliert zur Verfügung.

    Du darfst aber nicht übersehen, dass C und C++ Library-basierte Sprachen sind, d.h. die Linux-libs z.B. für file-IO mit ihren Funktionen sehen schon etwas anders aus als die entsprechenden libs für AVRs.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    130
    DANKE!
    Das Prinzip und die Schreibweise des C99 scheint gleich zu sein.
    Das bedeutet das der Umstieg relativ einfach ist. ISR und Bit-Verschiebungen innerhalb eines Registers dürften auch gleich sein.

    Wenn ich tatsächlich auf RPi-Hardware umsteige, würde ich in diesem Zusammenhang auch der Umstieg von C zu Python lohnen?
    Was wäre mit Python bei der GPIO-Steuerung besser/einfacher?

    Auch würde ich gerne ~mal eben~ einen Montior zur Ausgabe diverser Programm-Speicher nutzen (zB. Timerausgaben, etc.).
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  5. #5
    HaWe
    Gast
    Zitat Zitat von frabe Beitrag anzeigen
    DANKE!
    Das Prinzip und die Schreibweise des C99 scheint gleich zu sein.
    Das bedeutet das der Umstieg relativ einfach ist. ISR und Bit-Verschiebungen innerhalb eines Registers dürften auch gleich sein.

    Wenn ich tatsächlich auf RPi-Hardware umsteige, würde ich in diesem Zusammenhang auch der Umstieg von C zu Python lohnen?
    Was wäre mit Python bei der GPIO-Steuerung besser/einfacher?

    Auch würde ich gerne ~mal eben~ einen Montior zur Ausgabe diverser Programm-Speicher nutzen (zB. Timerausgaben, etc.).
    Ich arbeite immer direkt auf dem Pi, kein cross-Kompilieren und kein ssh, d.h. ich benutze ihn wie einen kleinen eigenständigen Mini-PC (was er ja auch ist).
    Einfach HDMI-Monitor (ich empfehle wegen des GUI-Desktops 10", 13" oder größer - man kann auch umstöpseln) und Kbd/Maus dran und fertig!
    Alle Text-Ausgaben erfolgen dann in einem Terminal-Window auf dem Raspi-Desktop (wie bei Windows), für Grafik-Ausgabe gibt es verschiedene Grafik-Libs (openVG, gtk, openCV uvm, siehe oben im Quick-Guide)

    Python ist grundsätzlich einfacher, wenn man komplexe Funktionen z.B. für Multimedia nutzen möchte, wenn man diese Sprache mag ...
    GPIOs, finde ich, kann man direkter, schneller und universeller per C programmieren.
    Spiel einfach mal ein bisschen damit rum, ist ja alles vorinstalliert!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    130
    Zitat Zitat von HaWe Beitrag anzeigen
    Python ist grundsätzlich einfacher, wenn man komplexe Funktionen z.B. für Multimedia nutzen möchte, wenn man diese Sprache mag ...
    GPIOs, finde ich, kann man direkter, schneller und universeller per C programmieren.
    Kann man in Python auch zeitkritsche GPIO-Anwendungen im [ms]-Bereich nutzen?
    Würdest du je nach Anwendung unterschiedliche Sprachen verwenden? Also C bei GPIO und Python bei reinen Multimedia-Anwendungen.

    Da RPi auf einem Linux-BS basiert, müsste es möglich sein, unterschiedliche Anwendungen in einen Prozessor zu schreiben.
    Auch hier dürfte die Abgrenzung zu uC und Arduino sein...

    - - - Aktualisiert - - -

    Hallo noch einmal.
    Ich bin hier über einen Artikel gestolpert, der besagt das die GPIO-Pins kein analoges Signalauslesen können. ZB. Potys, Spannungswerte, Sensoren.
    https://tutorials-raspberrypi.de/ras...nale-auslesen/
    Wie ist das mit dem ADC bei dem Modell Raspberry Pi Zero WH v.1.1 ?

    Habe einwenig quer gelesen - Python kommt mir hier sehr entgegen.
    Wo finde ich eine Übersicht über mögliche Interrupts?
    Bietet Python auch Timer im [us]- und 1-10[ms]-Bereich an?
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Mikrosekunden in Python glaube ich eher nicht. Python ist eine interpretierte Scriptsprache und deutlich langsamer als C. Seine Stärken liegen eher in anderen Bereichen.

    Timer auf dem Raspi sind Linux Timer, die in irgendeiner Form von der Programmiersprache verpackt werden. Einen direkten Zugriff auf Hardwaretimer hat man da eher nicht, ist wie gesagt kein Mikrocontroller. Natürlich ist es möglich auf dem Raspi mehrere Anwendungen parallel auszuführen. Das unterscheidet sich nicht von einem Linux PC mit Intel Prozessor. Mir ist nicht ganz klar, was du mit "in einen Prozessor schreiben" meinst.

    Analogeingänge bindet man eher über SPI oder notfalls I2C an. Das es beim Zero einen eingebauten ADC gibt, habe ich noch nicht gehört.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    130
    Kann man mit RPi und Python 1ms-Schritte realisieren?
    Und den Timer in [ms] von Linux abrufen?

    Für Analog-IO scheint ein externes IC; MCP3008 die erste Wahl zu sein.

    Welche 7"-Display mit Touch könnt ihr für den RPi Zero WH empfehlen?
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Zitat Zitat von frabe Beitrag anzeigen
    Kann man mit RPi und Python 1ms-Schritte realisieren?
    Generell ja. Natürlich kann sich das in ein Nein ändern, wenn du deine Anforderungen spezifizierst.
    Und den Timer in [ms] von Linux abrufen?
    Ja.

    Schau dir mal piGPIO an. Das ist ein Deamon (Linux Hintergrundprozess), den man von der Kommandozeile, aus C/C++/D, Python und vom Netzwerk via TCP/IP ansteuern/programmieren kann. Damit kann man 'n ganze Menge anstellen. U.a. GPIO-Pins überwachen und im niedrigen µs-Bereich auf Änderungen reagieren.
    Geändert von Sisor (28.08.2019 um 17:06 Uhr)

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    130
    Zitat Zitat von Sisor Beitrag anzeigen
    Generell ja. Natürlich kann sich das in ein Nein ändern, wenn du deine Anforderungen spezifizierst.
    Timer-Interrups verwende ich zZ. gerne als Zähler in einem Statemachine und zur Pin-(Eingang) Überwachung.
    Von delay() halte ich überhaupt nichts - selbst einfache Blink-LEDs oder PWM gehen besser mit ms-Timer (Timer-Interrupt).
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Raspberry Pi PoE HAT: Platine gibt Raspberry Pi Lüfter und Power over Ethernet
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 28.08.2018, 10:03
  2. RP6 mit Raspberry Pi
    Von ccontroller im Forum Robby RP6
    Antworten: 20
    Letzter Beitrag: 11.05.2018, 00:31
  3. RP6 und Raspberry Pi
    Von xonic128 im Forum Robby RP6
    Antworten: 18
    Letzter Beitrag: 01.01.2014, 11:13
  4. [ERLEDIGT] Raspberry Pi SPI
    Von Kampi im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 29.04.2013, 14:39
  5. Suche Serviceleistung Python-Programmierung für Raspberry Pi
    Von Raspy im Forum Jobs/Hilfen/Stellen - Gesuche und Angebote
    Antworten: 0
    Letzter Beitrag: 01.09.2012, 10:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus