Go Down

Topic: Programmare Arduino in C o C++ puro. (Read 4 times) previous topic - next topic

Manu89

Ciao a tutti,
da qualche mese ho approciato il mondo Arduino,interessante senza dubbio,solo che ad un certo punto mi son chiesto
se fosse possibile evitare due cose,pur continuando a "giocare" con questa divertente scheda,in particolare:

- è possibile programmare Arduino in puro C oppure in puro C++,quindi da un lato evitanto tutte le librerie e i metodi
  prettamente arduiniani (a partire da Serial,digitalWrite e via discorrendo) e dall'altro,oltre a far accesso direttamente ai
  registri del uControllore,cosa certamente possibile, utilizzare metodi standard del C o del C++(ad esempio per l'I/O preferirei usare printf o
  cout<<).

- è possibile utilizzare altri IDE,ad esempio VisualStudio di Microsoft o AVR Studio di Atmel,come se stessi programmando un
  normalissimo uControllore Atmel?

Vi ringrazio anticipatamente per le vostre risposte,son sicuro che soddisferanno a pieno i miei dubbi!
Saluti Manu89.

leo72

Puoi programmare anche in assembly, se ne sei capace. L'IDE di Arduino è solo un modo semplificato per gestire il microcontrollore ma nulla vieta di lavorarci in C puro (gli Atmel con core AVR ad 8 bit non sono ottimizzati per il C++).
Puoi usare qualunque editor che ti aggrada, anche un semplice editor di testo. Poi salvi, compili da terminale e flashi con avrdude ed un programmatore qualsiasi, anche Arduino usato con lo sketch ArduinoISP o altro. Altrimenti su Windows puoi usare l'IDE ufficiale di Atmel.

PaoloP


è possibile programmare Arduino in puro C oppure in puro C++

Si


utilizzare metodi standard del C o del C++(ad esempio per l'I/O preferirei usare printf o cout<<)

Si


è possibile utilizzare altri IDE,ad esempio VisualStudio di Microsoft o AVR Studio di Atmel,come se stessi programmando un normalissimo uControllore Atmel?

Si
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Manu89

Grazie per le risposte,adesso che ho appurato che sia possibile andare oltre certi "limiti" indagherò
sulle metodologie realizzative.
Finalmente si inizia a programmare in forma canonica :D
Saluti M4nu89

uwefed

Puoi programmare Arduino senza l' uso delle sue librerie, ma il forte di Arduino é che non devi conoscere il Microcontroller a livello programmazione e hardware a memoria per sapere cosa come fare.
Per non usare l' ide di Arduino devi avere grosse conoscenze a livello programmazione e elettronica del Controller.
Ciao Uwe

niki77


Grazie per le risposte,adesso che ho appurato che sia possibile andare oltre certi "limiti" indagherò
sulle metodologie realizzative.
Finalmente si inizia a programmare in forma canonica :D
Saluti M4nu89


Ciao, ho visto che finora nessuno ti ha consigliato eclipse come ide alternativo per programmare avr.

Se lo conosci non ho bisogno di decantarti le sue doti, se non lo conosci PROVALO!
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

leo72

Aggiungi però che devi perderci mezza giornata per settarlo per farlo funzionare, io ci ho perso un sacco di tempo e non sono giunto a nulla di buono. Hai una guida che "funziona" realmente? E poi, con Eclipse, flashi direttamente dall'IDE o devi ricorrere al terminale?

niki77


Aggiungi però che devi perderci mezza giornata per settarlo per farlo funzionare, io ci ho perso un sacco di tempo e non sono giunto a nulla di buono. Hai una guida che "funziona" realmente? E poi, con Eclipse, flashi direttamente dall'IDE o devi ricorrere al terminale?


Ciao leo, guarda l'ho rifatto anche ieri sera sul pc di casa.
Installato eclipse, installato plugin , ad esagerare 2 minuti di settaggi da fare su eclipse e sei a posto.
Ad onor del vero però, mi sento di dirti che quando provai la prima volta la cosa era veramente molto complicata da fare.
Da quando invece ho trovato questo ultimo plugin di baeyens (http://eclipse.baeyens.it/) è veramente semplice.

Puoi fare tutto da eclipse, compili , carichi sulla scheda e hai anche il monitor seriale se ti serve.
Certo che una volta che passi a quello poi è tutto 'eclipse style' , se come me lo conosci bene (lo utilizzo per lavoro) vai una scheggia, hai un ottima visione dei progetti complessi e tutti gli strumenti di refactoring , codecompleting e codeformat che dall'ide di arduino te li sogni.
Certo che sono il primo a dirti che tutti queste potenzialità si apprezzano se si programma 'seriamente' .
Per fare lampeggiare 2 led premendo un bottone insomma tutto il per di più non serve.

Io mi trovo molto bene (windows) ma non posso garantirti che funzioni altrettanto bene su linux non avendolo potuto provare.
Se vuoi provarlo puoi seguire le istruzioni presenti nel sito che ho scritto sopra, la guida è leggermente diversa da quello che ti ritroverai a schermo perchè è fatta per una versione di plugin precedente, ma niente che intuitivamente non si possa risolvere (se poi serve una mano chiedi).

Ti consiglio la versione ecplise Indigo c++ developer incubation, poi quando vai ad installare il plugin di eclipse, installa la versione 1.2.4 dalla sezione 'Uncategorized', e una volta ultimato, fai tutti i settaggi indicati, una volta completato, prima di fare qualsiasi altra cosa cerca gli aggiornamenti, dovrebbe trovartene uno per il plugin stesso versione 1.2.5.5 .

Se vuoi provarlo veramente fammi sapere che ti fornisco gli screenshot di tutti i miei settaggi (in totale sono 2) perchè ho ottimizzato ulteriormente alcune cose, e ti fornisco le librerie di arduino che ho dovuto modificare (le ho dovute modificare perchè sono proprio sintatticamente ERRATE, funzionano solo compilando dall'ide di arduino perchè quando arduino compila sposta tutte le lib nella stessa radice)
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

leo72

Un'ultima domanda. Nel caso di core aggiuntivi, come si comporta? Io programmo molto i Tiny, e questo è un punto essenziale.
Se vuoi mandarmi gli screenshot, spediscili pure a leonardo@leonardomiliani.com

niki77

Per quanto riguarda i core aggiuntivi non so ,non ho ancora provato, mentre a livello di schede puoi utilizzare tutte le stesse che hai disponibili nell'ide arduino .
Sostanzialmente il plugin legge le schede dalla configurazione dell'IDE arduino e ne prepara il progetto core qualora non già presente.
Non ho mai provato core diversi (anche se a breve dovrò provare per il 1284p) , ma in caso lo provassi ti faccio sapere.
Dopo pranzo ti mando gli screeenshot, adesso ho fame!
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

leo72


Per quanto riguarda i core aggiuntivi non so ,non ho ancora provato, mentre a livello di schede puoi utilizzare tutte le stesse che hai disponibili nell'ide arduino .
Sostanzialmente il plugin legge le schede dalla configurazione dell'IDE arduino e ne prepara il progetto core qualora non già presente.
Non ho mai provato core diversi (anche se a breve dovrò provare per il 1284p) , ma in caso lo provassi ti faccio sapere.
Dopo pranzo ti mando gli screeenshot, adesso ho fame!


Ok, grazie.

niki77



Non ho mai provato core diversi (anche se a breve dovrò provare per il 1284p) , ma in caso lo provassi ti faccio sapere.



Mi rimangio quello che ho detto, non posso aiutarti in quanto ho già fatto le prove per il 1284p, che sono terminate con esito positivo, ma purtroppo non si può parlare di core diverso in quanto nelle versioni  arduino  > 1.0 quel chip è già supportato....
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

AnTrea

#12
Oct 03, 2012, 10:39 pm Last Edit: Oct 03, 2012, 10:41 pm by Trisonic Reason: 1


è possibile programmare Arduino in puro C oppure in puro C++

Si


Non in puro C++... qualcosina-ina del C++, ma non tutto...

Fonte: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_cplusplus
Arduino, MODs e DIY: blackstufflabs.com

lesto



Aggiungi però che devi perderci mezza giornata per settarlo per farlo funzionare, io ci ho perso un sacco di tempo e non sono giunto a nulla di buono. Hai una guida che "funziona" realmente? E poi, con Eclipse, flashi direttamente dall'IDE o devi ricorrere al terminale?


Se vuoi provarlo veramente fammi sapere che ti fornisco gli screenshot di tutti i miei settaggi (in totale sono 2) perchè ho ottimizzato ulteriormente alcune cose, e ti fornisco le librerie di arduino che ho dovuto modificare (le ho dovute modificare perchè sono proprio sintatticamente ERRATE, funzionano solo compilando dall'ide di arduino perchè quando arduino compila sposta tutte le lib nella stessa radice)



problema per cui ho proposto una modifica dell'ide giusto qualche settimana fa...
https://github.com/arduino/Arduino/pull/116

domanda, l'autocompletamento del codice funziona per le lib ufficiali? e per quelle fatte ad hoc? (uso eclipse sono con java, mai provato in C/C++)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

niki77

Certo che funziona, ma non solo per le librerie ufficiali, ma anche per quelle non ufficiali, per le classi utente e per le funzioni....
Praticamente quando inizi a scrivere codice se premi ctrl+barra ti propone i candidati , ogni candidato ha la sua icona accanto che ti permette di vedere se è un metodo , una proprietà, una enumerazione, una costante una classe etc etc etc.
Una volta individuato il tipo, mettendo il punto ti mostra tutte le possibilità che hai per quel tipo alla stessa maniera.

Un altra cosa carina è che appoggiando il mouse sul metodo di una libreria, nel tooltip te lo espande , e anche per le costanti e per le macro ti fà vedere il valore e/o la macro
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Go Up