Guida completa a jaLCDs
Carlo "Dhs" Demichelis ha scritto per noi una dettagliatissma guida per lo jaLCDs, il piu′ completo, e complicato, programma di gestione di un display LCD basato su interfaccia Hitachi HD44780.
di Stefano Pepe pubblicato il 24 Febbraio 2003 nel canale ModdingIl Winamp
Passiamo ora a vedere lo schermo che ho creato per il Winamp:
[WinAmp]
showtime 1000
growspeed 100
updateinterval 500
scrollspeed 150
modein
modeout
jump 0
line 1
$showif:$math:$len:$winampartist§§+$len:$winamptitle§§+3§:>>:20: ***
§$winampartist§$showif:$len:$winampartist§§:>>:0: - §$winamptitle§
line 2 $winampposition§ $ascii:126§ $winamplength§ $winampbitrate§ Kbs
line 3 $winampspectrum§
line 4
che produce questo risultato:

Ci sono varie cose da notare, per la precisione:
Non e′ possibile mettere un vu-meter ed uno spectrum analyzer sullo stesso schermo. Lo stesso dicasi se si volesse mettere, che so, lo spectrum analyzer ed una bar.
Nella prima riga troviamo un comando utilissimo, $showif§. La sintassi e′ la seguente:
"$showif:VAL1:op:VAL2:testo§"
in pratica l′istruzione confronta il primo valore con il secondo. Nel caso la condizione venga soddisfatta, viene mostrato il testo (testo, variabile, quello che si vuole...).
Per la lista degli operatori dispobili, date un′occhiata al configuratore di jaLCDs.
Nel caso specifico a cosa lo showif presente nella prima riga? Semplice!
Lo scopo principale della riga e′ di mostrare il nome dell′artista ed il titolo del brano in esecuzione. Se la lunghezza di Autore + Brano supera i 20 caratteri (la larghezza dell′LCD), il testo scrollerà ciclicamente, andando ad "attaccare" la fine del nome del brano con l′inizio del nome dell′autore alla prima ripetizione.
Lo $showif§ serve a rendere la cosa piu′ leggibile.
Quindi, se Autore + Titolo e′ minore di 20, questi vengono mostrati e non succede nulla di particolare (non scrollano).
Nel caso invece che la lunghezza dei due testi (e di altri 3 caratteri, cioe′, " - ", il separatore) superi i 20 caratteri, verrà inserito *anche* il separatore " *** ", che renderà chiaramente leggibile il tutto.
Nella seconda riga vediamo un′altra cosa nuova, $ascii§.
Come si puo′ immaginare, il comando serve a mostrare uno specifico carattere richiamandolo per il suo codice ascii.
la sintassi e′:
"$ascii:codice§, dove codice e′ un valore numerico da 0 a 255."
Ora che abbiamo visto il primo comando condizionale ($showif§), passiamo ad esaminare gli altri a disposizione.
I salti condizionali sono effettuati con il comando $if§, la cui sintassi e′:
"$if:VAL1:op:VAL2:Target§"
Cioe′:
Se il confronto tra il valore1 ed il valore2 soddisfa la condizione, si eseguirà un salto allo schermo chiamato Target.
Se si vuole un′applicazione pratica di questo comando, fate cosi′: Nella prima riga dello schermo immediatamente successivo a Netstats, andate ad inserire, come primo comando, cio′ che segue:
"$if:$dlspeed0§:>>:20:Netstats§"
A che serve?
Se la velocità di download supera i 20 Kbps, allora si torna allo schermo di netstats. In pratica, per meglio monitorizzare i downloads, lo schermo rimarrà fisso a Netstats finche′ il download (che deve avere una velocità comunque superiore a 20kbps) non termina.
Utile, vero? In realtà, gli usi che questo comado concede sono molto ampie, come vedremo in seguito.
L′altro comando condizionale e′ legato al Blink del testo.
Come avrete visto, sfogliando i vari comandi, e′ possibile visualizzare testo che lampeggia.
In questo caso, lo si puo′ far lampeggiare solo in determinate condizioni.
La sintassi e′ praticamente identica a quella gia vista precedentemente.
Un piccolo esempio:
"$blinkif:$mail1§:>>:0:You have $mail1§ emails§"
Finche′ ci saranno 0 email il testo comparirà come:
You have 0 emails
Come le email arrivano, il testo lampeggerà.
I salti condizionali possono essere, ad esempio, molto utili per segnalare condizioni anonime, come il sovrariscaldamento della CPU o la carenza di ram, facendo, magari, lampeggiare la retroilluminazione del display, o avviando programmi esterni.
[WinAmp]
showtime 1000
growspeed 100
updateinterval 500
scrollspeed 150
modein
modeout
jump 0
line 1
$showif:$math:$len:$winampartist§§+$len:$winamptitle§§+3§:>>:20: ***
§$winampartist§$showif:$len:$winampartist§§:>>:0: - §$winamptitle§
line 2 $winampposition§ $ascii:126§ $winamplength§ $winampbitrate§ Kbs
line 3 $winampspectrum§
line 4
che produce questo risultato:

Ci sono varie cose da notare, per la precisione:
Non e′ possibile mettere un vu-meter ed uno spectrum analyzer sullo stesso schermo. Lo stesso dicasi se si volesse mettere, che so, lo spectrum analyzer ed una bar.
Nella prima riga troviamo un comando utilissimo, $showif§. La sintassi e′ la seguente:
"$showif:VAL1:op:VAL2:testo§"
in pratica l′istruzione confronta il primo valore con il secondo. Nel caso la condizione venga soddisfatta, viene mostrato il testo (testo, variabile, quello che si vuole...).
Per la lista degli operatori dispobili, date un′occhiata al configuratore di jaLCDs.
Nel caso specifico a cosa lo showif presente nella prima riga? Semplice!
Lo scopo principale della riga e′ di mostrare il nome dell′artista ed il titolo del brano in esecuzione. Se la lunghezza di Autore + Brano supera i 20 caratteri (la larghezza dell′LCD), il testo scrollerà ciclicamente, andando ad "attaccare" la fine del nome del brano con l′inizio del nome dell′autore alla prima ripetizione.
Lo $showif§ serve a rendere la cosa piu′ leggibile.
Quindi, se Autore + Titolo e′ minore di 20, questi vengono mostrati e non succede nulla di particolare (non scrollano).
Nel caso invece che la lunghezza dei due testi (e di altri 3 caratteri, cioe′, " - ", il separatore) superi i 20 caratteri, verrà inserito *anche* il separatore " *** ", che renderà chiaramente leggibile il tutto.
Nella seconda riga vediamo un′altra cosa nuova, $ascii§.
Come si puo′ immaginare, il comando serve a mostrare uno specifico carattere richiamandolo per il suo codice ascii.
la sintassi e′:
"$ascii:codice§, dove codice e′ un valore numerico da 0 a 255."
Ora che abbiamo visto il primo comando condizionale ($showif§), passiamo ad esaminare gli altri a disposizione.
I salti condizionali sono effettuati con il comando $if§, la cui sintassi e′:
"$if:VAL1:op:VAL2:Target§"
Cioe′:
Se il confronto tra il valore1 ed il valore2 soddisfa la condizione, si eseguirà un salto allo schermo chiamato Target.
Se si vuole un′applicazione pratica di questo comando, fate cosi′: Nella prima riga dello schermo immediatamente successivo a Netstats, andate ad inserire, come primo comando, cio′ che segue:
"$if:$dlspeed0§:>>:20:Netstats§"
A che serve?
Se la velocità di download supera i 20 Kbps, allora si torna allo schermo di netstats. In pratica, per meglio monitorizzare i downloads, lo schermo rimarrà fisso a Netstats finche′ il download (che deve avere una velocità comunque superiore a 20kbps) non termina.
Utile, vero? In realtà, gli usi che questo comado concede sono molto ampie, come vedremo in seguito.
L′altro comando condizionale e′ legato al Blink del testo.
Come avrete visto, sfogliando i vari comandi, e′ possibile visualizzare testo che lampeggia.
In questo caso, lo si puo′ far lampeggiare solo in determinate condizioni.
La sintassi e′ praticamente identica a quella gia vista precedentemente.
Un piccolo esempio:
"$blinkif:$mail1§:>>:0:You have $mail1§ emails§"
Finche′ ci saranno 0 email il testo comparirà come:
You have 0 emails
Come le email arrivano, il testo lampeggerà.
I salti condizionali possono essere, ad esempio, molto utili per segnalare condizioni anonime, come il sovrariscaldamento della CPU o la carenza di ram, facendo, magari, lampeggiare la retroilluminazione del display, o avviando programmi esterni.







DJI Osmo Nano: la piccola fotocamera alla prova sul campo
FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Smembrate OpenAI: la richiesta del senatore Bernie Sanders scuote la Silicon Valley
iPhone 16 a 689€: e ora che si fa? Disponibili in colorazione nera o bianca, le più vendute
I robot aspirapolvere Neato diventeranno 'stupidi': Vorwerk si prepara a spegnere i server cloud
Lux e Discovery, AMD e il Dipartimento dell'Energia USA uniscono le forze per due nuovi supercomputer AI
Qualcomm entra nei datacenter: annunciati gli acceleratori AI200 e AI250 per l'inferenza generativa
Amazon prepara il più grande licenziamento della sua storia: fino a 30.000 posti a rischio
Un post di Sean Duffy (amministratore ad interim della NASA) ha suscitato ilarità sui social
SpaceX ha già lanciato oltre 135 razzi spaziali Falcon 9, superando quanto fatto nel 2024
GeForce RTX 5060 Ti 8GB: non piace neanche a NVIDIA. Avrebbe chiesto ai partner di limitare la produzione
Isar Aerospace Spectrum: il fallimento del primo lancio del razzo spaziale europeo dovuto a una valvola
'State lontani dalla GeForce RTX 5090 Founders Edition': l'appello di un riparatore
GJ 251 c è la ''super-Terra'' scoperta a 18 anni luce dal nostro Pianeta: necessari nuovi dati per conoscerla meglio
Halo è ufficialmente multipiattaforma: tutti i capitoli su PlayStation, inclusi quelli futuri
Windows 11 25H2 e 24H2: come attivare subito tutte le funzionalità di ottobre 2025








