- HEMS Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 27

Thema: Programmierung in Arduino vs. RepberryPi

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    916
    Zitat Zitat von Sisor Beitrag anzeigen
    Falls ein Fehler vorliegt, wo finde ich ihn schneller?
    Der Fehler ist doch schon gemacht.
    Wo stelle ich beim Arduino die SampleRate ein? Und was bleibt ohne ISR von der Rechenzeit übrig, wenn ich auf allen 8 Kanälen fullspeed nacheinander messen will? Wie werde ich den Jitter los, der zweifellos bei dieser synchronen Pollgeschichte auftritt, wenn ich auch nur ein einziges "if" bei der Datenauswertung verwende?

    Ich will das jetzt nicht gänzlich verreißen, aber die ADC-Geschichte nach Arduino Referenz (siehe AnalogRead) ist für mich ein typisches Beispiel. Bei der Verwendung aller 8 Kanäle bekommt man mit der ISR und 16MHz eine Taskscheibe von etwa 1000 Befehlzyklen zum Bearbeiten der Werte und Umsetzen des ADMux.
    Mit Arduino bekommt man statt knapp 2kHz noch 1,25kHz SampleRate und damit ist auch gleich die komplette Rechenzeit weg.

    Schon das Beispiel aus der Referenz
    Code:
    void loop() {
      val = analogRead(analogPin);  // read the input pin
      Serial.println(val);          // debug value
    }
    kann doch nicht jitterfrei laufen.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    was man hier machen kann, wenn man auch dem Arduino Forum folgt ist eben Bare Metal einzugreifen, sich an den Sample Ready Interrupt zu hängen und eine Statemachine über den Interrupt laufen zu lassen, welcher immer erst 2 samples aus dem sample register wegwirft ... siehe Atmel Doku ... und dann den 3ten Sample in eine Tabelle oder Ringpuffer speichert und den kanal wechselt)

    Aber dann ist man schon raus aus der Arduino Welt, aber das schöne ist, solange man die Platform nicht wechselt, kann man das bequem mischen und mit Arduino übersetzen und einspielen ... (nur auf die Include achten)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    @Holomino:
    Prinzipiell hast du Recht. Die hohe Abstraktionsebene von Arduino 'verbrät' in einigen Fällen Rechenzeit. Dafür ist der Code halt einfach und portabel, da gilt es halt abzuwägen. Ich will nur sagen, dass man mit Arduino einfache Probleme in der Regel einfach lösen kann, und dass diese Art von Problemen die häufigsten sind. Am Ende ist es immer eine Frage der Anwendung und der sich daraus ergebenden Anforderungen.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von Sisor Beitrag anzeigen
    @Holomino:
    Prinzipiell hast du Recht. Die hohe Abstraktionsebene von Arduino 'verbrät' in einigen Fällen Rechenzeit. Dafür ist der Code halt einfach und portabel, da gilt es halt abzuwägen. Ich will nur sagen, dass man mit Arduino einfache Probleme in der Regel einfach lösen kann, und dass diese Art von Problemen die häufigsten sind. Am Ende ist es immer eine Frage der Anwendung und der sich daraus ergebenden Anforderungen.
    Genau darum geht es MIR!
    Von Atmel möchte ich nur weg, da die beiden anderen sofort eine Hardware-Infrastuktur zur Verfügung stellt und ich mich gerne im "KleinKlein" verknote...

    Ich bin und bleibe Anfänger, da ich durch Prog keine Geld generiere. Also einfach - mini-Jitter spielen keine Rolle - [ms]-Takt reicht mir als Basistimer - einfachere Sprache == schnelle Problemlösung, ist genau mein Ding.
    Weder die AVR/Atmel-, Arduino- noch die RPi-Familie steht für Unzuverlässigkeit oer Spielzeug - hier wäre meine Grenze.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Dann würde ich dir als Einstieg den Arduino Nano empfehlen. Der ist sehr günstig, klein und einfach mit USB zu programmieren.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    57
    Beiträge
    2.214
    Arduinos können-nur ergänzend erwähnt- keineswegs nur Millisekunden-genau arbeiten.
    Es gibt auch micros()- Mikrosekunden.
    Die kann man genauso als Basis für einen Timer verwenden...wobei man dann allerdings nachgucken sollte, ob das noch wirklich präzise wird....eben weil Arduino in manchem ein wenig Eigenleben entwickelt.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von Sisor Beitrag anzeigen
    Dann würde ich dir als Einstieg den Arduino Nano empfehlen. Der ist sehr günstig, klein und einfach mit USB zu programmieren.
    Wie im Beitrag von @Mxt zu lesen, kann der "Micro" noch etwas flexibler mit dem USB-Port umgehen. Da USB-Steuerung im uC integriert.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von frabe Beitrag anzeigen
    Wie im Beitrag von @Mxt zu lesen, kann der "Micro" noch etwas flexibler mit dem USB-Port umgehen. Da USB-Steuerung im uC integriert.
    Das ist richtig, aber wenn du wirklich einen entsprechenden Arduino für ein Projekt mit USB benötigst, dann würde ich eher den Teensy LC oder 3.2 empfehlen. Das Problem beim USB ist, wenn man den vermurkst, dann hat man keine Verbindung mehr zum PC. Beim Micro/Leonardo muss man dann genau im richtigen Moment während der Programmübertragung den Reset Knopf loslassen, damit der Bootloader die Verbindung zum PC herstellt. Das kann schon ziemlich Nerven kosten. Das ist beim Teensy deutlich besser gelöst, der Taster darauf ist nämlich kein Reset Taster, sondern schaltet den Controller in den Programmiermodus, bzw. bei 15 Sekunden drücken das Board zurück in den Auslieferzustand.

    Man kann auch mit einigen neueren original Arduino Modellen mit SAMD21 Controller USB machen, die sind aber längst nicht so weit verbreitet.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von Mxt Beitrag anzeigen
    dann würde ich eher den Teensy LC oder 3.2 empfehlen. Das Problem beim USB ist, wenn man den vermurkst, dann hat man keine .
    Wenn ich das richtig verstanden habe, ist die Teensy-Serie ein Clone der Arduinos.
    https://www.pjrc.com/teensy/
    Werden die Teensy´s genau so programmiert wie Arduino? Oder gibt es hier andere Bibliotheken und veränderte C-Syntax?
    ___________________________

    Damit ich in der Qual der Wahl nicht versinke, noch folgende Frage;

    Welche Literatur (Papierform) würdet ihr mir für Arduino-C empfehlen?
    Meine Schwerpunkte sind;
    Display-Ansteuerung,
    analoge/binäre IO,
    Tastenentprellung via Interrupt,
    Timer, Zähler,
    Eingangs- und Timer-Interrupts,
    PWM.

    Bücher über C habe ich genug - Arduino sieht hier etwas anders (einfacher/schlanker) aus - vermutlich Bibliotheken im Hintergrund.

    - - - Aktualisiert - - -

    Ich sehe gerade, dass es für Teensy unterschiedliche Hersteller gibt; PJRC, Adafruit, Joy-It.
    Die 3 werden zB. bei Conrad und Distrelec angeboten. Sind euch zw. diesen Herstellern Qualitätsunterschiede bekannt?
    Sollte man(n) von bestimmeten Herstellern die Finger lassen?
    PS:
    Bei Qualität kommt´s mir nicht auf ein paar Euro an.
    Geändert von frabe (30.08.2019 um 15:04 Uhr)
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.726
    .. Das Problem beim USB ist, wenn man den vermurkst, dann hat man keine Verbindung mehr zum PC ..
    Das klingt jetzt drastisch nach Henne-Ei-Geschichten: ich clone mir (wann immer es geht) einen mit Firmware ausgelieferten Controller "bare metal", zumindest Download der Firmware vom Chip. Ist aber keine wirkliche Lösung, weil es eben aufs Programmierverfahen OHNE Bootloader zurückgreift. Lohnte sich für mich fast immer. Ich habe so schon Bootloader vom asuro, arduino-clone, STM32F4DISCOVERY, usw.

    PS/OT: uuups, der achte Tausender ist voll :.-.)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. [ERLEDIGT] Pin-Programmierung mit Arduino
    Von Moppi im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 01.10.2018, 14:37
  2. STM32 contra ARM Cortex M3 (Arduino Due, Teensy): Performance per Arduino vs. nativ C
    Von HaWe im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 14
    Letzter Beitrag: 22.11.2017, 12:53
  3. Arduino Interrupt Programmierung
    Von Jeko im Forum Arduino -Plattform
    Antworten: 5
    Letzter Beitrag: 01.02.2017, 11:53
  4. Antworten: 13
    Letzter Beitrag: 07.11.2015, 02:21
  5. Erfahrungen/Tutorial: Programmierung von Arduino Due + entspr. IDE?
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 18.06.2014, 11:07

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress