Domanda:
Come posso programmare un arduino in C puro?
SeeingRed
2014-09-30 19:19:09 UTC
view on stackexchange narkive permalink

Sono un principiante e voglio imparare AVR C / C ++. Posso farlo usando un Arduino? (Lo chiedo perché ne ho già uno).

In tal caso, qualcuno potrebbe dirmi utilizzando quale IDE posso scrivere codice in C / C ++ puro e poi installarlo su Atmega328P su Arduino? O dovrei invece procurarmi un AVR e un programmatore?

Ho cercato in tutto Internet e sono davvero confuso da tutta la terminologia. Qualcuno potrebbe spiegarmelo?

Quindi, per programmare il 328, credo che sia necessario installare atmel studio per compilare il codice e quindi utilizzare il comando della riga di comando avrdude per inserire il codice compilato su arduino.
@Treesrule14 questa è una possibilità, ma non l'unica, quindi non è vero dire che è necessaria. Se è installato l'IDE di Arduino, lo è anche il compilatore avr-gcc da cui dipende.
@Treesrule14 Ho installato atmel studio. Non riesco a trovare alcuna risorsa che possa aiutarmi a far lampeggiare un programma sul chip di arduino usando un bootloader (senza un programmatore). È anche possibile?
Credo che tu abbia bisogno di un programmatore. : (
Non hai bisogno di alcun IDE. Puoi compilare e caricare utilizzando la toolchain fornita con Arduino. Guarda Arduino.mk per esempio.
@Treesrule14 - di nuovo sbagliato, non hai bisogno di un programmatore. Avrdude parlerà con il bootloader su arduino altrettanto prontamente per caricare un file esadecimale compilato da un programma C autonomo così come per caricare uno creato dall'IDE di Arduino.
@ChrisStratton totalmente non ha visto il tuo primo post mi dispiace per questo. Hai provato a programmare con avr-gcc tramite usb?
avr-gcc è un compilatore, non uno strumento di download. Ma chiunque sia abituato all'IDE di Arduino con un arduino collegato tramite USB lo ha fatto, sì. E io e molti altri l'abbiamo fatto con semplici programmi in C costruiti dalla riga di comando con avr-gcc e visualizzati dalla riga di comando con avrdude (che è, dopo tutto, ciò che l'IDE di Arduino fa silenziosamente per conto del suo utente). Ci sono molti commenti online, è un compito che va oltre il banale riassunto in una risposta SO.
Tre risposte:
#1
+3
soerium
2014-09-30 19:57:00 UTC
view on stackexchange narkive permalink

Sì, procurati invece un programmatore AVR.

1) Puoi aggiornare la tua scheda arduino con avrdude / avr-gcc . Installa questi strumenti, trova la scheda tecnica di atmega328 (google it), usa i pinout della scheda per connetterti al tuo programmatore (stk500v2 / ISP) e voilà!

2) Tieni presente che facendo lampeggiare "manualmente" il tuo atmaga sulla scheda arduino stai rimuovendo il bootloader necessario per caricare i tuoi sketch da ARDUINO IDE.

3) Usa il tuo IDE C / C ++ preferito

dovresti essere in grado di trovare e rifare il bootloader per arduino guarda qui http://arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader
No! Non è necessario un programmatore o per rimuovere il bootloader. Il bootloader di Arduino non ha alcuna dipendenza dall'IDE o dalle librerie: sei libero di usarlo con programmi C stand alone come con gli sketch di Arduino. Farlo in questo modo non solo è più economico, ma consente di utilizzare la stessa scheda per entrambi gli stili di sviluppo senza modifiche alla configurazione.
L'autore voleva imparare AVR in puro C. Non ha chiesto - ehi ragazzi, come giocare con l'IDE di arduino o qualcosa del genere. ma come riutilizzare l'atmega a bordo lo ha già.
@ChrisStratton poiché non sei d'accordo con le altre risposte Invia una risposta per favore
#2
+2
albator
2014-10-01 05:29:53 UTC
view on stackexchange narkive permalink

Se sei un principiante, ti suggerisco di scrivere C nell'IDE di Arduino. Le librerie sono molto utili e penso che l'ambiente Arduino / Wiring / Processing soddisferà tutte le tue esigenze.

Dai un'occhiata a Lightblue Bean ( http://punchthrough.com/bean/) è un buon esempio della potenza di quella piattaforma. Anche i programmatori embedded esperti possono usarlo, poiché il registro sottostante è ancora accessibile.

Ora sto programmando sul Ti MSP430 e, sebbene possa apprezzare le possibilità, mi manca la semplicità di Arduino; molto più facile iniziare con Arduino.

Vai a http://arduino.cc/en/main/software per scaricare la versione 1.0.6. Software IDE, collega il tuo Arduino, vai su Tools-> Board per selezionare il tuo Arduino, seleziona la porta "tty" appropriata in Tools-> Serial_Port. Quindi scrivi in ​​C puro e scarica. Ci sono tonnellate di esempi inclusi con l'IDE.

#3
+1
sa_leinad
2018-06-26 10:38:50 UTC
view on stackexchange narkive permalink

Un Arduino è programmato in C / C ++. C'è un malinteso comune che Arduino abbia una propria lingua. Vedi questo collegamento C ++ vs. The Arduino Language? per una discussione completa su Arduino come C / C ++ e le semplificazioni offerte da Arduino. Inoltre, puoi vedere il codice di base di Arduino qui.

Dal sito Web di Arduino:

Posso programmare la scheda Arduino in C?
In effetti lo sei già; il linguaggio Arduino è semplicemente un insieme di funzioni C / C ++ che possono essere chiamate dal tuo codice. Il tuo schizzo subisce piccole modifiche (ad es. Generazione automatica di prototipi di funzioni) e quindi viene passato direttamente a un compilatore C / C ++ (avr-g ++). Tutti i costrutti C e C ++ standard supportati da avr-g ++ dovrebbero funzionare in Arduino. Per maggiori dettagli, consulta la pagina sul processo di creazione di Arduino.

Arduino offre una facile curva di apprendimento per principianti fino agli esperti. Quindi scarica semplicemente l'ultimo IDE di Arduino, installalo e divertiti.

Un altro malinteso comune è che C sia un sottoinsieme di C ++. La libreria principale di Arduino è scritta in C ++, quindi è impossibile programmare in C utilizzandola.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...