Pages: 1 2 3 [4] 5   Go Down
Author Topic: Nuova libreria 74HC595 per controllo display LCD ed uscite digitali  (Read 8139 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 46
Posts: 5881
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se Windows non sa distinguere fra HC595.h e hc595.h non è un prego ma un difetto  smiley-wink
e' tutto soggettivo, in questo caso ha vinto windows  smiley
Ma che tu sappia e' stata una scelta di Bill o un limite ereditato dal passato ?
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
Full Member
***
Karma: 0
Posts: 178
Attenzione, sono un principiante!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il file non lo avevo toccato. Comunque l'importante è che funzioni  smiley
Molto probabilmente mi si era impallato qualcosa da me.
Logged

SO Linux - Ubuntu 12.04 - Arduino Uno R3 - IDE 1.0.5

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22768
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se Windows non sa distinguere fra HC595.h e hc595.h non è un prego ma un difetto  smiley-wink
e' tutto soggettivo, in questo caso ha vinto windows  smiley
Posso pubblicare questo commento sotto licenza CC SA-BY-NC oppure preferisci la GPL3.0?  smiley-wink

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


Switzerland
Offline Offline
Faraday Member
**
Karma: 113
Posts: 5953
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22768
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


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


Switzerland
Offline Offline
Faraday Member
**
Karma: 113
Posts: 5953
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[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 smiley-wink

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

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22768
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Majano (UD)
Offline Offline
Newbie
*
Karma: 6
Posts: 34
Stefano Smania
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22768
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-wink
La mia era una battuta, ho messo un'emoticon a sottolineare la cosa  smiley-razz

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


0
Offline Offline
Newbie
*
Karma: 0
Posts: 32
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley
« Last Edit: October 06, 2013, 10:27:55 am by LeonidRusnac » Logged

Majano (UD)
Offline Offline
Newbie
*
Karma: 6
Posts: 34
Stefano Smania
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-confuse). 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ò....
« Last Edit: October 06, 2013, 01:27:03 pm by smania2000 » Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 328
Posts: 22768
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

E' qTranslate.
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Majano (UD)
Offline Offline
Newbie
*
Karma: 6
Posts: 34
Stefano Smania
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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