Copmilatore Arduino 0022

Ciao a tutti ho un piccolo problema di programmazione. Mi sono costruito una tastiera su millefori per bus i2c , e scaricando la libreria dal link https://sites.google.com/site/angelitodeb/Home/i2ckeypad-20090224-3_v0.1.tar.gz ho visto che contiene file .cpp e .h. Per non rifare il mio circuito volevo ricompilare la libreria opportunamente modificata, ma non so come fare ad usare il compilatore di arduino, non so neanche se è possibile... qualcuno mi sa dire cosa devo fare o usare per ricompilare i file .cpp e .h per ottenere gli sketh per arduino?. Grazie.

Prova il bloc note ++ :-) scaricalo, è gratuito.

A modificarlo rieso uso vari programmi ma non rieso a ricompilare i file cpp e h per orrenere uno Sketch...

ah capito, :-( allora non sò aiutarti mi dispiace.....

Ciao Kermit_66

I file .c e .cpp sono file della libreria.

Lì in poche parole sono definiti le funzioni di quella libreria.

Tu devi scrivere il Tuo sketch. Se vuoi usare delle funzioni di una libreria devvi includere tale libreria e poi usare quelle funzioni. Tu compili poi il Tuo sketch e il compilatore / linker prende le funzioni delle libreri e il Tuo sketche e genera il codice che il controller capische e che viene caricato sul Arduino.

fai un unzip della libreria nella direttori Arduino0022/libraries (l’ unzip deve comprendere anche la cartella i2ckeypad). No i file da soli ma tutto il contenuto della cartella i2ckeypad copreso la cartella.
Adesso se riapri il IDE trovi la libreria e trovi negli esempi un esempio per usare la libreria.

Ciao Uwe

Quindi intervenendo su i file .cpp o .h di una libreria secondo delle mie necessità, in fase di compilazione mi viene generato uno sketch che tiene conto delle modifiche che ho fatto, che posso essere ad esempio sulle porte di I/O personalizzate per il mio HW ... quindi non debbo ricablare il mio HW ma modifico le librerie in base al mio HW... ho capito bene?

Ciao Kermit_66

Normalmente le librerie sono fatte in modo che, dove possibile, puoi definire nel inizializzazione i pin che usi e non devi modificare la libreria. Alcuni pin non si possono modificare come per esempio i 6 PWM i 2 Interrupt, i 2 pin del I2C, il pin di reset, le 6 entrate analogiche, la seriale ecc perché sono definit via hardware perché sono implementati le funzionalitá via hardware.

Sei libero di modificare un alibreria come hai bisogno, ma normalmente non é necessario.

Leggi questo che spiega come scrivere una libreria: http://arduino.cc/en/Hacking/LibraryTutorial

Ciao Uwe

apri arduino ide. fai file -> new e salva lo scecth. ora apri la cartella schetchbook(è nella tua home, sia in linux che in windows o mac)cerca la cartella col nome del progetto che hai salvato e copiaci il .cpp e il .h ora riapri il progetto con arduino e voilà, avrai 3 tab: il file .pde(ancora vuoto) e i file delle due librerie. ora nel .pde puoi fare #import "nomelibreria.h", aggiungere setup() e loop() e usare la libreria. Molto comodo se devi adattare la libreria ai tuoi usi: basterà cliccare sulla tab del file che ti interessa e modificare/controllare il pezzo di codice che ti interessa. poi quando uppi il codice vedrai che arduino ide ti compila tutto :-)

import "nomelibreria.h"

non era "#include "nomelibreria.h" Ciao Uwe

The #import directive was added to Objective-C as an improved version of #include. Whether or not it's improved, however, is still a matter of debate. #import ensures that a file is only ever included once so that you never have a problem with recursive includes. However, most decent header files protect themselves against this anyway, so it's not really that much of a benefit.

da http://stackoverflow.com/questions/439662/what-is-the-difference-between-import-and-include-in-objective-c

OK Lesto tutto ok come dici tu … ottimo suggerimento, ma mi rimane un problema che nno rieso a spiegarmi, scrivo del codice lo compilo ma mi da errori dicendo che mancano altre librerie, ho cercato le librerie mancanti le ho compiate nelle stessa cartella ma da il medesimo errore.
https://sites.google.com/site/angelitodeb/Home/i2ckeypad-20090224-3_v0.1.tar.gz
ho usato questa libreria.

purtroppo il compilatore di arduino non è molto intelligente, e quindi quando una libreria A vuole una libreria B, la libreria B va importata anche nel file .pde
vedi se questo risolve 8)