Ist es besser, über die Arduino IDE zu AVR Studio (oder einer anderen besseren Alternative?) Zu wechseln. Fühlen Sie sich wie es so einfach und kindisch ist. Ich muss die Idee und die Wahl der Experten kennen.
arduino
microcontroller
Anubis
quelle
quelle
Antworten:
Ein großer Vorteil von zB AVR Studio ist die Möglichkeit, alle für ATmega168 / 328 erstellten Bibliotheken zu verwenden, bevor Arduino auf den Markt kam. Auf AVRfreaks und Hunderten anderer Hobby-Websites finden Sie FFT-Bibliotheken, Bibliotheken für die Verwendung eines von Ihnen gekauften dunklen ICs, rudimentäre digitale Filter und vieles mehr.
Sie können auch effizienteren Code schreiben, wenn Sie lernen, wie Sie Standard-AVR-Bibliotheken verwenden und das Datenblatt (oder die Tutorials) des Mikrocontrollers lesen. Für einfache Anwendungen ist Arduino-Code einfach zu schreiben und zu debuggen. Manchmal möchten Sie jedoch das Timing effizienter steuern.
AnalogRead()
benötigt 100µs zur Ausführung. Das entspricht 10ksps (Tausenden von Samples pro Sekunde). Sie können das auf 70ksps leicht pumpen, wenn Sie auf niedrigen Code für das ATmega168 / 328 zugreifen. All das können Sie natürlich in der Arduino IDE tun, aber irgendwann werden Ihre Projekte möglicherweise zu komplex und Sie möchten Ihre eigenen Bibliotheken mit schnelleren Funktionen schreiben. Dafür ist AVR Studio möglicherweise besser geeignet.Wenn Sie jemals einen anderen AVR-Chip als den von Arduino angebotenen programmieren möchten, benötigen Sie einen Programmierer und eine andere IDE. Kleine Projekte, die 1 KB Code verwenden, können auf einem ATtiny ausgeführt werden. Sie können ein Dutzend davon für den Preis eines einzelnen ATmega328 kaufen. Diese Chips sind billig und verfügen über die meisten Funktionen von Arduino: I2C, SPI, ADC. Sie können sogar Bibliotheken finden, die eine USB-HID-Schnittstelle hinzufügen! Keine seriellen Treiber oder so!
Persönlich schreibe ich zuerst Code in der Arduino IDE, ohne Code-Optimierung. Wenn es funktioniert, kann dieser Code einfach in Standard-C ++ - Bibliotheken transkribiert und effizienter gestaltet werden.
quelle
Es ist einfach, weil es für jeden zugänglich sein muss , und das funktioniert: Jeder und seine kleine Schwester können Arduino programmieren.
Wenn Sie das Gefühl haben, dass Sie mit so etwas wie Real Programming umgehen können, würde ich das auf jeden Fall tun. Sie müssen mehr Code schreiben, haben aber auch mehr Kontrolle. Ein wichtiger Punkt: Die Arduino-Bibliothek ist schrecklich ineffizient: Funktionen wie
DigitalWrite
undDigitalRead
können bis zu 50-mal schneller erstellt werden .quelle
DigitalRead/Write
. Nie gewusst, dass ..Die meisten Antworten konzentrierten sich auf die Verwendung der Arduino-Karte als Standard-AVR-Karte. Sie können aber auch eine fortgeschrittenere IDE verwenden und trotzdem die Einfachheit der Arduino-Codierung und der integrierten Bibliotheken (zusammen mit den oben genannten Nachteilen) nutzen. EngBlaze hat hierzu ein Tutorial erstellt: Tutorial: Verwenden von Atmel Studio 6 mit Arduino-Projekten
quelle
Die Arduino IDE handelt Code-Effizienz für Bequemlichkeit und Entwicklungsgeschwindigkeit für kleine Projekte. Da Experten auch Fristen haben, ist es durchaus akzeptabel, die Arduino IDE für einen schnellen Proof-of-Concept zu verwenden oder ein anderes Projekt beim Debuggen zu unterstützen.
Wenn Sie sich auf die Entwicklung eingebetteter Software spezialisieren möchten, müssen Sie in der Lage sein, leistungsfähigere Entwicklungstools wie AVR Studio oder avr-gcc und Ihre bevorzugte IDE zu verwenden.
Die Beherrschung der Entwicklungstools, das Erlernen der Funktionsweise eines Mikrocontrollers und die Kenntnis einiger Baugruppen sind definitiv von Vorteil, wenn Sie an Systemen mit geringem Arbeitsspeicher und / oder geringem Stromverbrauch und / oder hoher Leistung arbeiten möchten.
quelle
so
komplexen Assembler-Codes erstellen. Obwohl das ein bisschen schwierig erscheint, können Sie genau lernen, wie sich der Mikrocontroller verhält. Ich denke, viele werden diese Antwort nützlich finden. Hoffe du bekommst mehr Stimmen,: D .. (und das ist deine erste Antwort, was?).