Pages: 1 [2] 3   Go Down
Author Topic: Nuova libreria advancedFunctions per Arduino DUE  (Read 4970 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5960
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho interpretato anche io negativamente il messaggio del Vanzati
visto che non ricordo niente di poderoso o interessante proveniente dallo stesso, protesto vivamente al fine di ricevere spiegazioni o rimozione del messaggio precedente.
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Io non ho copiato proprio nulla.
L'ho anche specificato nel primo post, che il mio più grosso problema è stato capire come accedere alle funzionalità hardware del chip SAM.
Cercando su Google ho trovato che c'era questo framework chiamato CMSIS e l'ho anche detto che devo ringraziare quella poca documentazione che sono riuscito a trovare in giro:

Ovviamente la documentazione è scadente  smiley-sweat e non è facile risalire al modo in cui usare le funzioni del CMSIS (acronimo per Cortex Microcontroller Software Interface Standard). Per ora ho recuperato un pò di info googlando sul forum, su internet e guardando gli header del framework stesso.

Quando ho iniziato il lavoro non sapevo neanche che ci fossero già delle lib pronte: non ho voglia di mettermi a reinventare la ruota, quando questa è già disponibile. Ho trovato in seguito alcune cose quando il lavoro era già in corso d'opera e mi ero impantanato su alcuni problemi, perché io non sono un programmatore professionista ed il C/C++ l'ho studiato da autodidatta in questi 2 anni e mezzo che uso Arduino. E' grazie

Il fatto che ci siano similitudini non lo posso negare ma quello è il "modo di fare le cose". Il datasheet richiede una precisa sequenza di azioni da compiere per portare a termine la programmazione dei registri del chip. Addirittura, ora viene usata una "chiave" di attivazione che va scritta in alcune locazioni del registro, pena la non modifica dello stesso.
Detto questo, non si può non scrivere codice identico a quello di un altro soggetto se l'operazione da fare è la medesima, anche volendo. Non mi pare sia stato accusato di plagio il creatore del core Tiny, nonostante si potrebbe dire che tale core è derivato da quello dell'Arduino.

Mi spiace che la cosa sia stata commentata in questo modo perché:
1) mi sembra di aver contribuito non poco con un sacco di software (librerie, sketch) e materiale vario (vedi tutti gli articoli che ho scritto sul mio sito) per favorire l'uso di Arduino riempiendo le lacune nella documentazione ufficiale;
2) ho sempre rilasciato il mio lavoro in forma pubblica, offrendo tutto sotto la GPL3 proprio perché nessuno potesse prendere dei pezzi ed usarli senza ridistribuire eventuali lavori derivati. Facendo così mi sono prodigato affinché le informazioni sull'uso al meglio dell'Arduino rimanessero pubbliche;
3) quando ho iniziato a lavorare sulla DUE, il mio primo intento è stato quello di completare il supporto alle periferiche integrate nel SAM3X che il core di Arduino non supporta ancora (non lo si può negare) andando quindi a fare un lavoro conto terzi che sarebbe spettato non certo a me.

Vorrà dire che i miei prossimi lavori me li tengo per me, così nessuno verrà a dirmi che copio dagli altri
Logged


Offline Offline
Sr. Member
****
Karma: 4
Posts: 345
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Vorrà dire che i miei prossimi lavori me li tengo per me, così nessuno verrà a dirmi che copio dagli altri

Noooooooo, ti prego non tenerti le cose per te smiley-cry. Le tue librerie sono ottime ed il solo fatto che siano gratis giustifica il fatto che in lontananza assomiglino ad altre (per motivi pratici e funzionali non perchè le hai copiate).
Non capisco neanche io il perchè del commento di Vanzati e il mio consiglio è quello di fregarsene altamente   smiley-cool.

Leo, continua così che alla maggior parte di noi va più che bene smiley-wink.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9679
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ad ogni modo è un buon lavoro.

Federico, il tuo è un commento ingiusto, nel mondo del software, e in quello elettronico, è facile realizzare soluzioni molto simili anche se realizzate da diverse persone, questo sia perché certi modi di agire sono imposti dal componente, sia perché non esiste un modo diverso di farlo, alla fine le soluzioni realizzate da persone diverse sono tutte simili, e questo è uno dei motivi per cui non è possibile brevettare il software.
Un esempio banale, ieri mi hanno fatto notare che è stato realizzato un blocco dell'autoreset per la DUE, per 16u2, questa modifica è praticamente identica a quella che io ho proposto, molti mesi fa, per la UNO, eppure non andrò mai a dire che la persona ha copiato la mia perché effettivamente non c'è altro per farlo ed è normale che i due lavori siano quasi identici.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sembra la diatriba tra Bell e Meucci.  smiley-roll-blue
Logged

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

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5960
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alla fine gli Americani hanno mollato, speriamo succeda anche qui.
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Offline Offline
Edison Member
*
Karma: 139
Posts: 1332
O ti distingui o ti estingui
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vi riporto l'esperienza che ho avuto 20 anni fa. Dovevo vendere un software, che al tempo era rivoluzionario, e l'azienda interessata all'acquisto lo faceva esclusivamente se veniva brevettato; Mi ricordo le ore passate all'ufficio brevetti a Milano  smiley-grin
Mi sembra che l'unico software brevettabile sia quello topografico, ma può essere che le cose siano cambiate...

Tornando a noi:
L'apporto che ha dato e sta dando Leo a questa comunità è indiscusso; Non penso serva aggiungere altro.



"Non ti curar di lor, ma guarda e passa"
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12635
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un esempio banale, ieri mi hanno fatto notare che è stato realizzato un blocco dell'autoreset per la DUE, per 16u2, questa modifica è praticamente identica a quella che io ho proposto, molti mesi fa, per la UNO, eppure non andrò mai a dire che la persona ha copiato la mia perché effettivamente non c'è altro per farlo ed è normale che i due lavori siano quasi identici.
azz, gira gira il cetriolo è tornato al suo posto smiley-grin smiley-grin smiley-grin

Voglio fare una precisazione: la mia era ovviamente una battuta, in quanto conosco il valore e l'onestà morale ed intellettuale di Leo, non a caso abbiamo collaborato già diverse volte, con reciproca soddisfazione, ho grande stima del suo operato e dell'apporto che dà al Forum, anche nella sua nuova veste di Moderatore che esercita alla perfezione, voglio augurarmi che ciò alla lunga non gli arrechi danno. Per quanto lo conosco posso garantire che Leo non ha alcuna intenzione di cambiare rotta, il suo è il sacrosanto sfogo di chi non riesce a comprendere il vero motivo (se esiste...) di un intervento che, a quanto pare, ha lasciato tutti perplessi, e qui mi fermo se no finisce che poi sono io ad assumere il ruolo dell'ortolano smiley-sweat
Logged


Switzerland
Online Online
Faraday Member
**
Karma: 114
Posts: 5980
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
L'apporto che ha dato e sta dando Leo a questa comunità è indiscusso; Non penso serva aggiungere altro.

+1 ... senza alcun dubbio !!!

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

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

Nuova versione 0.3.0 della libreria con aggiunta del modulo WDT per gestire il watchdog del SAM3X.

Si hanno 3 metodi:

Code:
wdt.enable(intervallo);
Imposta il timer del WatchDog con l'intervallo in millisecondi specificato da intervallo. Questo può andare da 1 a 16000 ms (16 secondi).

Code:
wdt.restart();
Riavvia il contatore del WDT in modo che questo non resetti il micro. Deve essere l'ultima istruzione del blocco di codice che si vuole controllare non si blocchi. Generalmente è in fondo al loop().

Code:
wdt.disable();
Disabilita il WDT.

PS:
siccome non sono a casa, ho scritto questo modulo senza provarlo materialmente. Se qualcosa va storto.... pulsante ERASE sulla schedina per piallare completamente la Flash  smiley-wink
Logged


Global Moderator
Milano, Italy
Offline Offline
Edison Member
*****
Karma: 23
Posts: 1180
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda che io non ho accusato proprio nessuno di aver copiato! Semmai lo avrà pensato chi è corso sulle difensive.

Ti devo dire che appena ho visto il titolo "Nuova libreria advancedFunctions per Arduino DUE" e che eri tu l'autore ho subito pensato a qualcosa di interessante e aperto la discussione.
Purtoppo però, per me, di nuovo (come reciti nel titolo) non c'era nulla: True Random Number Generator e RTC interno, sono argomenti che sono stati trattati dalla community appena è uscita la Due.
E mi sono chiesto come mai, anzichè partecipare allo sviluppo condiviso, vero motore dell'open source, tu avessi deciso di lavorare da solo.
Sarebbe un insulto alla mia e alla tua intelligenza pensare che tu non abbia pensato almeno una volta di fare una ricerca sul forum in merito a questi due temi. Quindi, l'unica mia critica era rivolta al fatto che un personaggio come te, che crede nell'open source, abbia deciso di cimentarsi e portare avanti da solo del lavoro sapendo che altra gente precedentemente aveva già iniziato a lavorare alle stesse cose.

Poi, dando peso a quello che dice Astro, so benissimo che trattandosi di periferiche hardware che, funzionano in un solo modo, è facile arrivare alla stessa soluzione di altri quindi, ancora una volta: perchè duplicare? Nota che non mi sarei mai permesso di criticare se non avessi conosciuto almeno un po' quello che stavo criticando.

Se avessi voluto essere più pignolo e malpensante sulla true random generator mi sarei espresso dicendo che è singolare che anche tu abbia deciso di resettare l'interrupt del TRNG mettendo a 1 tutti i 32 bit del registro (TRNG->TRNG_IDR = 0xFFFFFFFF;) e non usando l'apposita macro che setta solo quello giusto (TRNG->TRNG_IDR = TRNG_IDR_DATRDY;) e di usare il "trucco" della variabile statica per fare la configuazione una sola volta.

Chiaro che ognuno è libero di fare ciò che vuole, quindi tu di accorpare tutto in una singola libreria mettendoci le modifiche che vuoi, ma io sarò libero di criticare e dire la mia. La mia voleva essere una critica costruttiva, tant'è che ti ho proposto di inserire la tua libreria nella discussione che ha lo scopo di raccogliere tutte le librerie compatibili con la Due.

Per il watchdog, anch'io oggi non ho la possibilità di provare, ma ho dei dubbi che possa funzionare perchè il Watchdog Mode Register (WDT_MR) si può configurare una volta ogni reset del processore e di default il watchdog viene disabilitato nella funzione init(), di fatto precludendoti la possibilità di riabilitarlo nello sketch.
Per farlo funzionare bisognerebbe almeno commentare la funzione che lo disabilita nel file variant.cpp della Due.
Questa discussione è un buon punto di partenza: http://arduino.cc/forum/index.php?PHPSESSID=f051a28da4cafb100c6a863750e44861&topic=132986.0
Logged

F

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5960
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il fatto che tutti quelli che sono intervenuti hanno interpretato il tuo messaggio come una critica ed un'accusa a Leo deve farti almeno mettere in conto che forse lo hai scritto male, invece non leggo nulla nella tua controrisposta su questo punto.

E mi sono chiesto come mai, anzichè partecipare allo sviluppo condiviso, vero motore dell'open source, tu avessi deciso di lavorare da solo.
Questo e' un tuo parere contestabile senza problemi, leo mette a disposizione di tutti il suo lavoro e non desina spiegazioni se gli vengono chieste, credo che lui faccia parte di quelli che credono e portano avanti l'open source.
Anche io, che invece non ti farei mai vedere un mio progetto, credo fermamente nell'opensource. Ogn'uno ci crede a modo suo.
L'arduino Team non ha mai fatto nulla per appoggiare o incoraggiare la contribuzione alle librerie ufficiali.
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Federico, se non sono stato il solo ad aver male interpretato il tuo intervento, ci sono stati anche altri utenti che lo hanno fatto, forse la colpa non è tutta mia. smiley-wink

A parte questo, io credo nell'open-source ma, come vedrai, frequento principalmente questa sezione. Ho provato alle volte a scrivere anche sul forum internazionale ma il mio inglese è.... scolastico. Se iniziano a scrivere con modi di dire o quant'altro come si fa noi con l'italiano, non capisco più nulla e non riesco a capire cosa voglia dire la gente. Per cui visto che comunque avevo un "lavoro" da fare qui, ho iniziato a seguire solo questa sezione. La critica che faccio tutto di testa mia è quindi fondata, contribuisco con un sacco di materiale ma tendo a lavorare per proprio conto. E mi capita spesso di replicare ciò che è stato fatto da altri perché spesso non guardo sul forum internazionale. Ad esempio il leOS è uno scheduler veramente minimale e di RTOS veri ne sono stati fatti diversi ma io l'ho voluto realizzare comunque perché mi piaceva.

Tornando alle librerie tutto quello che ho scritto è disponibile sia sul mio sito che su github:
https://github.com/leomil72

Mi spiace di essermi preso con te e mi scuso in pubblico come in pubblico ti avevo criticato
Logged


Global Moderator
Milano, Italy
Offline Offline
Edison Member
*****
Karma: 23
Posts: 1180
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

L'arduino Team non ha mai fatto nulla per appoggiare o incoraggiare la contribuzione alle librerie ufficiali.
Scherzi? Se vuoi contribuire puoi:
* aprire una issue su github (prima su google code) se vuoi segnalare un problema, altrimenti se vuoi sottomettere una patch puoi fare direttamente una pull request.
* partecipare alla mailing list dei Developers
* Usare le sezioni appropriate del forum
* e perchè no, anche la mail support@arduino.cc

Quote from: Testato
Il fatto che tutti quelli che sono intervenuti hanno interpretato il tuo messaggio come una critica ed un'accusa a Leo deve farti almeno mettere in conto che forse lo hai scritto male, invece non leggo nulla nella tua controrisposta su questo punto.
+
Quote from: leo72
Federico, se non sono stato il solo ad aver male interpretato il tuo intervento, ci sono stati anche altri utenti che lo hanno fatto, forse la colpa non è tutta mia. smiley-wink

Posso anche metterla in conto, anche se, e non credo di essere presuntuoso nel dirlo, nel mio primo post ci vedo solo una critica e nessuna accusa o attacco.
Se sono stato frainteso posso anche scusarmi per aver dato adito a fraintendimento. Mi sembra che ora i malintesi si siano chiariti però.


@leo:
continuerò a leggere la discussione per vedere gli sviluppi sul watchdog.

Ho notato 2 piccole imprecisioni:
- nel myWdt.h hai "ereditato" un commento dal trng:
Code:
//class to get random numbers from the internal TRNG
class myWdt {
...
- nella libreria myTrng usi i metodi getLong() e getInt(), questi due nomi potrebbero generare confusione sulla dimensione dei tipi, visto che sugli ARM gli int sono a 32-bit, come i long.
Logged

F

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

Ieri giornata di lavoro piena per cui non ho potuto fare test né controllare alcunché.
Ho però tratto spunto dalla discussione sul WDT, effettivamente ho letto che bisogna editare quel file altrimenti il WDT non lo si può cambiare più: il fatto che il registro WDT_MC fosse impostabile solo 1 volta dopo il reset lo avevo letto anch'io nel datasheet ma non sapevo che il core di Arduino lo disattivasse. Oggi vedo se riesco a fare dei test.
Il prox modulo è l'RTT (Real Time Timer).
Logged


Pages: 1 [2] 3   Go Up
Jump to: