È meglio passare a AVR studio (o qualsiasi altra alternativa migliore?) Sull'IDE di Arduino. Sento che è così semplice e infantile. Ho bisogno di conoscere l'idea e la scelta degli esperti ..
È meglio passare a AVR studio (o qualsiasi altra alternativa migliore?) Sull'IDE di Arduino. Sento che è così semplice e infantile. Ho bisogno di conoscere l'idea e la scelta degli esperti ..
Risposte:
Un enorme vantaggio dell'utilizzo di AVR Studio, ad esempio, è la possibilità di utilizzare tutte le librerie create per ATmega168 / 328 prima dell'alba di Arduino. Librerie FFT, librerie per l'utilizzo di alcuni circuiti integrati oscuri che hai acquistato, filtri digitali rudimentali e molti altri possono essere trovati su AVRfreaks e centinaia di altri siti di hobby.
Puoi anche scrivere un codice più efficiente se impari a utilizzare le librerie AVR standard e studi il foglio dati (o tutorial) del microcontrollore. Per applicazioni semplici, il codice arduino è facile da scrivere ed eseguire il debug. Tuttavia, a volte si desidera controllare i tempi in modo più efficiente. AnalogRead()
necessita di 100 µs per l'esecuzione. Ciò corrisponde a 10ksps (migliaia di campioni al secondo). Puoi facilmente pomparlo a 70ksps se accedi al codice di basso livello per ATmega168 / 328. Puoi fare tutto questo nell'IDE di Arduino, ovviamente, ma a un certo punto i tuoi progetti potrebbero diventare troppo complessi e vorrai scrivere le tue librerie con funzioni più veloci. AVR Studio potrebbe essere più adatto a questo.
Inoltre, se vuoi mai programmare un chip AVR diverso da quelli offerti da Arduino, avrai bisogno di un programmatore e di un IDE diverso. Piccoli progetti che utilizzano 1kB di codice possono essere eseguiti su un ATtiny. È possibile acquistare una dozzina di quelli al prezzo di un singolo ATmega328. Quei chip sono economici e hanno la maggior parte delle funzionalità di Arduino: I2C, SPI, ADC. Puoi persino trovare librerie che aggiungono un'interfaccia HID USB! Nessun driver seriale o altro!
Personalmente, scrivo prima il codice nell'IDE di Arduino, senza l'ottimizzazione del codice. Se funziona, quel codice può essere facilmente trascritto in librerie C ++ standard e reso più efficiente.
È semplice perché deve essere accessibile a tutti , e funziona: tutti e la sua sorellina possono programmare Arduino.
Se ritieni di poter gestire qualcosa di più simile alla programmazione reale, lo farei sicuramente. Dovrai scrivere più codice, ma avrai anche più controllo. Un punto importante: la libreria Arduino è orribilmente inefficiente: funzioni come DigitalWrite
e DigitalRead
possono essere realizzate fino a 50 volte più velocemente .
DigitalRead/Write
. Non l'ho mai saputo ...
La maggior parte delle risposte si è concentrata sull'uso della scheda Arduino come scheda AVR standard. Ma puoi anche utilizzare un IDE più avanzato e sfruttare ancora la semplicità della codifica Arduino e delle librerie integrate (insieme agli svantaggi sopra menzionati). EngBlaze ha appena svolto un tutorial su questo: Tutorial: utilizzo di Atmel Studio 6 con progetti Arduino
L'IDE Arduino scambia l'efficienza del codice per praticità e velocità di sviluppo per piccoli progetti. Poiché anche gli esperti hanno delle scadenze , è perfettamente accettabile utilizzare l'IDE di Arduino per una rapida dimostrazione del concetto o per aiutare il debug di un altro progetto.
Se vuoi specializzarti nello sviluppo di software embedded, devi essere in grado di usare strumenti di sviluppo più potenti, come AVR Studio, o avr-gcc e il tuo IDE preferito.
Andare oltre la padronanza degli strumenti di sviluppo, l'apprendimento del funzionamento interno di un microcontrollore e la conoscenza di alcuni assemblaggi è sicuramente un vantaggio se si intende lavorare su sistemi con memoria ridotta e / o requisiti di bassa potenza e / o prestazioni elevate.
so
codici di assemblaggio complessi. Anche se sembra un po 'difficile, puoi imparare esattamente come si comporta il microcontrollore. Penso che molti troveranno utile questa risposta. Spero che otterrai più voti: D .. (e questa è la tua prima risposta, eh?).