Salve a tutti!
Sono rimasto colpito dalle soluzioni che mi avete trovato!
A quanto pare è un problema VECCHIO (i post indicati da js-Bascom sono del 2004
!!!)
Devo dire che comunque che la soluzione è un pò "criptica" per la scarsezza di info fornite...
Cioè mi si dice che dovrei andare a cambiare una delle librerie.
Ci sono andato e l'unica libreria che ho trovato, dove c'è scritta la chiamata indicata l'ho trovata nel file: lcd4busy_anypin.LiB
Quello che ho trovato è questo (stralcio del file):
;----------------------------------------
; At this point the LCD is in 4-bit mode
ldi R24,40
rcall _Lcd_control
Ldi R24,14 ; Display on, Cursor on, Noblink
Rcall _Lcd_control
Ldi R24,6 ; Cursor moves right,text does not move
RJmp _Lcd_control ; RET will come from _lcd_control
[END]
;----------------------------------------
Non ho capito se le sei istruzioni:
;----------------------------------------
ldi r24, $24
rcall _lcd_control
ldi r24, $9
rcall _lcd_control
ldi r24,$20
rcall _lcd_control
;----------------------------------------
devono
SOSTITUIRE quelle che ho trovato (che si assomigliano, ma con parametri diversi) oppure devo
ACCODARLE / scriverle prima.
DA NOTARE che l'ultima istruzione, sull'originale è un
RJmp, mentre Mark scrive
rcall.
Non so se è un errore di Mark, ma non hanno lo stesso effetto a livello di programma.
Oppure addirittura come dice Mark, devo metterle nel codice sorgente BASIC.
E se è così, questo vuol dire che il compilatore Basic è in grado di gestire righe di assembler DIRETTAMENTE nel codice?
Questa cosa, per la mia esperienza, mi sembra un pò fantasiosa, però io così potrei intendere, quando leggo Mark che scrive:
-----------------------------------------------------------------------------------------------------------------------------------------------------
for the KS0070 problem you
need an update. (Che significa?)
but here is an alternative :
this display needs an additional function to be set. (Qual'è questa funzione? a che si riferisce?
)
after the usual;
config, add : (è una istruzione BASCOM, non dell'assembler!)
ldi r24, $24
rcall _lcd_control
ldi r24, $9
rcall _lcd_control
ldi r24,$20
rcall _lcd_control
that should work.
-----------------------------------------------------------------------------------------------------------------------------------------------------
Inoltre non capisco cosa intenda "need an update": da chi? e dove? Non c'è traccia di questo nel thread.
Quindi la situazione, per me, è ancora un pò confusa.
Ieri, feci anche la prova con Arduino, di collegare direttamente il display e anche con gli
sketch ARDUINO ho lo stesso problema con questo display.
Penso che a questo punto la discussione possa interessare molte persone.
Domani, penso modificherò la libreria, così come ho descritto (sostituendo il codice, non accodandolo) per una prova.
Vi terrò informati sugli sviluppi.
ciao e di nuovo: BUONA PASQUA!