Pages: [1] 2   Go Down
Author Topic: Programmare Arduino in C o C++ puro.  (Read 3355 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 103
Posts: 6572
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

è 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
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-grin
Saluti M4nu89
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 234
Posts: 20189
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-grin
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!
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged


MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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)
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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....
 
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Naples (IT)
Offline Offline
God Member
*****
Karma: 5
Posts: 712
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è 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
« Last Edit: October 03, 2012, 03:41:44 pm by Trisonic » Logged

Arduino, MODs e DIY: blackstufflabs.com

0
Online Online
Shannon Member
****
Karma: 117
Posts: 10105
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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++)
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Pages: [1] 2   Go Up
Jump to: