Documentare cores lib

Salve sto documentando il cores lib di arduino. Sto usando doxygen che può generare pagine html, pdf, ps, chm ecc. In particolare mi serve generare documentazione per qtcreator, perchè ho provato che se la doc è scritta correttamente nell'editor mi appare l'help in linea e alla pressione di F1 si apre help contestuale, cosa che trovo comoda non solo per i principianti.

Chiedo se c'è qualcuno che vuole dare un descrizione da aggiungere nella pagina principale del reference. Io ho inserito questo testo, se lo volete ampliare, corregere ecc:

Arduino core library è un mini framework scritto in C/C++ compilato in C++ specifico per lo sviluppo di programmi per microcontrollor. I microcontroller sono conosciuti anche con la signa MCU (microcontroller unit). Esso offre un'ambiente pre-inizializzato con degli oggetti pre istanziati, delle comode funzioni di uso frequente, e delle macro binarie di 8 bit per sopperire alle mancanze del C/C++.

\par Semplicità ed efficienza Gli oggetti predefiniti rendono semplice la programmazione, ma poco efficiente l'impiego della memoria RAM. Nel caso si avesse necessità di sfruttare a pieno le caratteristiche della MCU è necessario fare a meno di questa libreria utilizzando le funzioni base della libreria avr-libc o il linguaggio assembley. Tuttavia le funzionalità offerte sono talmente comode che si può anche pensare di cambiare microcontrollore, scegliendone uno con maggiore memoria.

Ho un dubbio riguardo gli oggetti predefiniti, cioè le istanze create come Serial che una istanza di classe HardwareSerial, credo sia l'unica istanza predefinita per questo ha senso assegnargli un gruppo separato? penso di no, ma allore in che gruppo la inserisco. Le funzioni PinMode Write.. ecc, in che gruppo le inserisco "Pin Port I/O"?

Nota che la doc sarà in italiano, per la felicità di menniti. Ho intenzione di creare un reference anche per avr-libc, speriamo di avere collaborazione, ma ne dubbito seriamente.

Ciao.

Serial e tutto ciò che concerne i pin ricadrebbe secondo me in una ipotetica sezione "Funzioni di I/O"

Serial e tutto ciò che concerne i pin ricadrebbe secondo me in una ipotetica sezione "Funzioni di I/O"

Si in effetti sono tutte funzionalità I/O ma anche print e printf ecc.

Se metto tutto su un repo, gli vuoi dare una occhiata?

Prima o poi lo devo mettere sul repo, ma ora sto documentando alla meglio alcune funzioni, se postasse un esempio per ogni funzione con descrizione il lavoro sarebbe molto più semplice ed immediato, poi per le modifiche al testo si possono fare senza la necessità di capirci qualcosa di doxygen.

Per creare la doc, c'è doxywizard, ma basta "doxygen Doxyfile".

Ciao.

Ma print e printf non sono specifiche di Arduino ma del C.

EDIT:
sì, posso dargli un’occhiata

Che bello un vero IDE.

Repositor creato su gitorius. https://gitorious.org/arduio-core-lib/arduio-core-lib-develop/trees/master

Sulla destra clicca "Download master as tar.gz"

Ciao.

up up.

In questi giorni i post sono maggiori del solito ed è facile tra un giorno e l'altro perdersi un post.

Ciao.

Scarico e provo, poi a casa faccio un test migliore.

EDIT: ah.. ma è solo la doc?

ah… ma è solo la doc?

No è un fork totale con l’aggiunta di doxygen per documentare il codice in linea.

Puoi aprire il progetto con qtcreator ma se non sai quello che fai non si compilerà, se vuoi fare la compilazione dimmelo che scrivo un file di progetto e lo posto. Poi sarà possibile compilare senza quasi scrivere nulla, cioè si deve specificare solo lo specfile. Ora non ho tempo di fare la guida, per aggiornare la doc devi scrivere doxygen Doxyfile, tutto qui.

Mi è venuta una grande idea, in teoria è possibile aggiungere documentazione a qtcreator quando si trova in fase creazione progetto, basterebbe avere la doc del 328 in doxygen convertita in qhc per avere documentati anche i registri interni di ogni microcontroller, e queste per me sarebbe il massimo. Devo provare se quanto detto funziona in pratica.

Se hai problemi fai sapere.

Ciao.

Ad esser sinceri proverei volentieri la tua IDE ma non ho il tempo di fare le operazioni che hai elencato nell'altro thread. Inoltre io uso la versione 0022 di Arduino molto "personalizzata": ho dentro infatti sia il core Tiny che quello per i 644 nonché l'Optifix 4.4 al posto dell'Optiboot. Era bello sapere di non dover gettare via nulla e di poter usare tutto senza problemi.

Se ci fosse una specie di script di importazione e/o configurazione per QtCreator che mi importasse tutta questa roba sarebbe il massimo.

Ad esser sinceri proverei volentieri la tua IDE ma non ho il tempo di fare le operazioni che hai elencato nell’altro thread.

Leo non è mia, è QtCreator che si presta ad essere customizzato, non ho toccato un filo di codice C++ interno.
QtCreator è predisposta per creare delle wizard personalizzate scrivendo solo codice xml.

Era bello sapere di non dover gettare via nulla e di poter usare tutto senza problemi.
Se ci fosse una specie di script di importazione e/o configurazione per QtCreator che mi importasse tutta questa roba sarebbe il massimo.

Non conosco le differenze tra il core 0021 e lo 0022, sapevo che lo 0022 dava problemi per cui non l’ho mai scaricato.

Ti piacerebbe lo script magico, c’è ma non è magico e non si tratta di uno script :smiley:

Copiati il tuo core in una directory poi da shell scrivi: qmake -project
Devi avere la versione 4x di qt-devel e qtcreator installata. Questo crea un file di progetto navigabile con Qtcreator, ma per compilare devi modificare leggermente il file .pro aprendolo da QtCreator. In particolare devi definire la costante DEFINES += F_CPU=16000000.
ma anche:
QMAKE_CC, QMAKE_CXX, QMAKE_LINK, QMAKE_CFLAGS, QLFLAGS, ecc.

Anche la 0022 si può documentare, però è un lavoraccio. Più semplice è apportare le modifiche alla 0021 su quel repo e poi aggiungere altri core. Nota che tu puoi clonare il repo con: git clone git://gitorious.org/arduio-core-lib/arduio-core-lib-develop.git ed apportare le modifiche fino a rendere il tutto simile al quello che hai sotto la 0022. Ma con l’aggiunta della doc e qualche variante.

Ci sono buone possibilità di avere aiuto in linea anche per i registri della CPU, cioè MCUCR, MCUSR, TIM1_OVF TIM0_COMPB,
TIM0_OVF, ecc.

Ciao.