Die Wire-Bibliothek verbindet deinen Arduino mit Sensoren und Aktoren, die über das I2C-Protokoll kommunizieren. Leider hat diese Bibliothek viele Unzulänglichkeiten, und oft möchtest du sie durch eine andere I2C-Bibliothek ersetzen. Die Wire-Bibliothek projektbezogen (also nur für einen Sketch) zu ersetzen, erweist sich als komplizierter, als man erwarten würde. In diesem Blogbeitrag beschreibe ich eine einfache Methode, um das zu erreichen.
Weiter lesenKategorie: Hack
Schnelle Lösungen für nervige Probleme
Sind Eingaben verfügbar?
Die SoftwareSerial-Klasse verfügt genauso wie die Serial-Klasse über die available()-Methode, die die Anzahl der Zeichen zurückgibt, die bereits empfangen, aber noch nicht gelesen wurden. Es gibt jedoch einen interessanten Unterschied. Ein Aufruf von SoftwareSerial.available() ist deutlich langsamer als ein Aufruf von Serial.available(). Wir werden nach dem tieferen Grund für dieses seltsame Verhalten suchen und ich werde drei Möglichkeiten aufzeigen, um das Problem zu beheben.
EDIT: In der Arduino Version 1.8.17 wurde das Problem beseitigt.
Weiter lesen
Wie viel Zeit braucht der Zeitnehmer?
Wie hoch ist der Overhead, der durch den millis()- Interrupt entsteht? Und können wir den vermeiden?
Pro-Mini-Tuning
Der Arduino Pro Mini ist ein sehr minimalistisches Arduino Board mit wenig Platzbedarf. Aus diesem Grund ist es ein idealer Kandidat für den Einsatz als Zielplatine in einem batteriebetriebenen System. In diesem Blogpost beschreibe ich, wie man den Stromverbrauch minimieren kann und einen neuen Bootloader brennen kann, der Flash-Speicher spart, Debugging ermöglicht und einen lästigen WDT-Fehler behebt.
Weiter lesen
Es tut mir leid, Dave. Ich fürchte, das kann ich nicht.
Gdb, der GNU-Debugger, ist wahrscheinlich der am häufigsten verwendete Open-Source-Debugger für eingebettete Systeme. Die AVR-Version von GDB auf dem Mac ist leider nicht sehr kooperativ. Wenn man versucht, eine ELF-Datei zu lesen, erhält man die folgende lustige Mitteilung (die an HAL9000 erinnert):
I’m sorry, Dave, I can’t do that. Symbol format `elf32-avr’ unknown.
Aber mit der richtigen Homebrew-Formel kann man avr-gdb einige neue Tricks beibringen …
EDIT: Das Problem wurde von den homebrew-Entwicklern gelöst.
Taue Dein Atmel-ICE auf

Avrdude ist das Arbeitspferd für die Programmierung von AVR-Chips von Atmel (jetzt Microchip). Es funktioniert einwandfrei auf allen Plattformen mit einer großen Anzahl von verschiedenen Programmern. Es gibt jedoch einige Ausnahmen. Der Atmel-ICE, ein Programmer und Debugger, kann unter macOS (>10.13) nicht verwendet werden. Aber schließlich scheint es Licht am Ende des Tunnels zu geben …