Go Down

Topic: Nuova libreria 74HC595 per controllo display LCD ed uscite digitali (Read 10852 times) previous topic - next topic

Testato


Se Windows non sa distinguere fra HC595.h e hc595.h non è un prego ma un difetto  ;)

e' tutto soggettivo, in questo caso ha vinto windows  :)
Ma che tu sappia e' stata una scelta di Bill o un limite ereditato dal passato ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Gono

Il file non lo avevo toccato. Comunque l'importante è che funzioni  :)
Molto probabilmente mi si era impallato qualcosa da me.
SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

leo72



Se Windows non sa distinguere fra HC595.h e hc595.h non è un prego ma un difetto  ;)

e' tutto soggettivo, in questo caso ha vinto windows  :)

Posso pubblicare questo commento sotto licenza CC SA-BY-NC oppure preferisci la GPL3.0?  ;)

Quote

Ma che tu sappia e' stata una scelta di Bill o un limite ereditato dal passato ?

Deriva dal vecchio DOS, neanch'esso faceva distinzione fra maiuscole e minuscole.
Mentre Linux, che appartiene alla famiglia *nix, ha nel suo DNA questa cosa.
Che è più giusta, perché se ci fai caso anche molti linguaggi di programmazione fanno distinzione fra lettere minuscole e maiuscole.

gpb01


[OT] ... su Mac, quando formatti un disco, puoi dirgli se il filesystem è case-sensitive o meno. Quasi tutti lo fanno NON case-sensitive.[/OT]

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

leo72



[OT] ... su Mac, quando formatti un disco, puoi dirgli se il filesystem è case-sensitive o meno. Quasi tutti lo fanno NON case-sensitive.[/OT]

Guglielmo

Secondo me è sbagliato.
Se ho 2 programmi, uno che si chiama mioprogramma, ed uno che si chiama mioProgramma, posso tenerli entrambi.

gpb01



[OT] ... su Mac, quando formatti un disco, puoi dirgli se il filesystem è case-sensitive o meno. Quasi tutti lo fanno NON case-sensitive.[/OT]

Secondo me è sbagliato.
Se ho 2 programmi, uno che si chiama mioprogramma, ed uno che si chiama mioProgramma, posso tenerli entrambi.


... mah ... non credo che una scelta sia migliore dell'altra, essenzialmente è... questione di abitudine ;)

Se vieni da Linux lo metterai case-sensitive, se vieni da Win, sicuramente no ...

Guglielmo

P.S. : è vero, potresti averli entrambi, ma non dirmi che non creano confusione ... ;)
Search is Your friend ... or I am Your enemy !

leo72

E' vero che si crea confusione ma poi i programmatori prendono brutte abitudini, come nel caso della lib chiamata HC595.cpp e poi inclusa come hc595.cpp.  ;)

smania2000

In realtà in c/cpp non vai certo ad includere hc595.cpp, semmai hc595.h, ma l'ambiente di sviluppo Arduino porta alcune semplificazioni fra le quali la direttiva include che non funziona in modo identico a quanto avviene in c/c++ tant'è che il file incluso compare magicamente nella linea di comando. Questa è la prima libreria che scrivo per Arduino per cui posso fare degli "errori di gioventù", davo per scontato che l'ide di Arduino non fosse "case sensitive". La prossima release è comunque tutto in minuscolo.

leo72


In realtà in c/cpp non vai certo ad includere hc595.cpp, semmai hc595.h,

Svista mia.

Quote

Questa è la prima libreria che scrivo per Arduino per cui posso fare degli "errori di gioventù",

Nessuno ti ha fatto un processo  ;)
La mia era una battuta, ho messo un'emoticon a sottolineare la cosa  :P

Quote

davo per scontato che l'ide di Arduino non fosse "case sensitive". La prossima release è comunque tutto in minuscolo.

E' anche il SO che è case sentivite, siccome Arduino ha un'IDE multipiattaforma devi pensare che altri SO si comportino in modo diverso del tuo.

lexip

Ciao smania2000,
complimenti per il lavoro... ti assicuro che a brevissimo la proverò nel mio progetto "centralina acquario". Nel progetto ho fatto uso degli shift ed ho collegato, in quanto non era possibile fare diversamente, due shift collegati a rispettivi 3 pin di Arduino. Uno shift gestisce LCD l'altro le uscite per la scheda a relè. Con la tua Libreria, potrei sviluppare una nuova versione della centralina (a breve avrò due acquari) e risparmiare pin preziosi! In teoria dovrei risparmiare qualcosina in termini di memorie dato che farò uso di una sola libreria... speriamo...

grazie ancora

LeonidRusnac

#55
Oct 06, 2013, 05:00 pm Last Edit: Oct 06, 2013, 05:27 pm by LeonidRusnac Reason: 1
ciao, oggi ho dato un'occhiata alla libreria in quanto voglio scrivermi una cosa simile per il mio progetto, sempre per dei 74hc595 solo che senza display, devo dire che hai fatto un bel lavoro ma volevo chiedere un paio di cose:
- da quanto ne so io, fare un digitalWrite è abbastanza complesso per l'arduino, non sarebbe meglio agire direttamente sul portb? quindi con bitSet(PortB, arduinoPin-8)
- stessa roba per la funzione ShiftOut, non sarebbe meglio gestirla più a basso livello la comunicazione SPI?

alla fine so che magari non ci sono differenze però se bisogna mettere tanti shift registers in serie inizia ad essere  un po pesante

P.S. prendilo come una mia riflessione personale sul possibile miglioramento della libreria :)

smania2000

#56
Oct 06, 2013, 08:11 pm Last Edit: Oct 06, 2013, 08:27 pm by smania2000 Reason: 1
Eccomi qui, rispondo a tutti insieme:
@Leo72: tranquillo, non mi sento sotto processo, anzi, ho visto il tuo blog, d'ora in avanti quando mi vedranno ridere da solo sarà perchè ripenso alla "Sindrome di Gundam"....son ancora qui che mi spancio dalle risate. Per quanto riguarda Linux nel mio blog trovi articoli di programmazione multiplatform, per cui so benissimo che è case sensitive, come tutti gli OS tranne win  :smiley-eek: Mi aspettavo però che l'IDE di Arduino fosse in grado di "correggere" il nome del file proprio perchè è multiplatform, infatti se pensi la cosa all'inverso potresti fare due librerie simili, una in maiuscolo ed una in minuscolo che però su win non funzionerebbero (in realtà non potresti nemmeno metterle sulla stessa cartella per cui in realtà il problema non sussiste  :~). Posso chiederti che plugin di wp hai usato per gli articoli in 2 lingue sul tuo blog?
@Lexip: Facci sapere come va, magari a progetto finito una bella foto dell'acquario la puoi condividere con tutti noi.
@LeonidRusnac: Tranquillo, io prendo in considerazione i suggerimenti di tutti, il bello di essere una cominità è proprio quello di poter condividere iddee, esperienza, capacità. Per quanto riguarda il settaggio diretto delle porte è vero e sbagliato nello stesso tempo. Proprio ieri ho letto l'articolo sul blog di Leo72 il suo articolo su questo argomento il che mi ha spinto a pensare un po'. La gestione diretta delle porte hai i suoi vantaggi in termini prestazionali, specialmente nelle applicazioni più critiche, ma una libreria deve funzionare su QUALUNQUE scheda Arduino per cui io devo essere sicuro che quel che facciamo con la Uno funzioni anche sulla Due, la Tre e la Yun. Ma siamo sicuri che la mappatura di quelle schede e delle future funzionino allo stesso modo? Poi uno dei vantaggi della mia libreria è la possibilità di scegliere qualunque pin della scheda, ma un utente potrebbe scegliere un pin su una porta e un'altro su un'altra per cui la gestione del software diventa un po' complessa. Arduino nella digitalWrite usa delle funzioni di più basso livello per mappare porta e bit relativi ad uno specifico pin di ogni scheda supportata per cui ho provato a scrivere una funzione simile alla digitalWrite, ma che non perde tempo a disattivare il pwm e non si dilunga a disattivare e poi riattivare gli interrupt. Purtroppo però la mia libreria ha solo 2 chiamate alla digitalWrite per cui il risultato finale è che la sketch occupa più spazio, mentre non ho ancora fatto test di velocità che farò nei prossimi giorni. Per quanto riguarda invece la ShiftOut non ho ancora visto com'è implementata, appena ho un attimo verifico se ci sono margini di miglioramento. Io uso una funzione sostitutiva ma che opera su buffers multibyte che utilizzo in una versione della IR-remote che sto ampiamente modificando, potrei eventualmente usare quella ma devo fare delle prove....vi aggiornerò....

leo72


@Leo72:
Posso chiederti che plugin di wp hai usato per gli articoli in 2 lingue sul tuo blog?


E' qTranslate.

fiodavid

Ciao,

complimenti per la libreria; al momento gli ho dato un occhio veloce e la trovo molto interessante.
Volevo chiederti una cosa in merito; vorrei realizzare una matrice a led modulare con arduino 1 rev3, e volevo sapere se con la tua libreria e aggiungendo degli shift register 74HC595 posso farlo.

Grazie per la risposta

Ciao
fiodavid

smania2000


E' qTranslate.

Grazie 1000 Leo72!

@fiodavid: certo che puoi farlo, MA non ti bastano i 74HC595 perchè non erogano sufficiente corrente per "tener su" tutti i LED. Se guardi nel mio blog c'è scritto come usare in accoppiata gli ULN2803A, alternativamente esistono led-drivers specifici per il pilotaggio di LED ma sinceramente è una materia in cui non mi sono mai inoltrato ma credo che su questo forum troverai tutte le informazioni di cui hai bisogno.

Go Up