Sida 2 av 2
Postat: 20 januari 2005, 18:11:09
av Hedis
Kom just på det att jag har för mig att den nollar pekaren när man tömmer displayen. Eller minns jag fel?
Clear display och return home kanske var 2 olika iofs.
Har kollat....
Clear display och return home är 2 olika kommandon. Så det är inge problem.
Kod: Markera allt
LOOP:
IF gubbe = 10 Then End
----***RENSA***---
LCDOut $00
LCDOut $FE, $14
Pause 500
gubbe = gubbe +1
Postat: 20 januari 2005, 18:13:52
av Mutiaz
Rensa och home är 2 olika. Men det funkar inte att lägga rensa där.. gubbjävlen står still..
Postat: 20 januari 2005, 18:19:05
av Hedis
Prova o skippa raden med "IF gubbe = 10 Then End" o se om han rör sig då....
Postat: 20 januari 2005, 18:20:17
av Mutiaz
Nix.. Han är fortfarande stillastående..
Postat: 20 januari 2005, 18:21:24
av Hedis
Hmm.... vi hade båda rätt
Saxat ur HD44780´s datablad.
Kod: Markera allt
Clear Display
Clear display writes space code 20H (character pattern for character code 20H must be a blank pattern)
into all DDRAM addresses. It then sets DDRAM address 0 into the address counter, and returns the
display to its original status if it was shifted. In other words, the display disappears and the cursor or
blinking goes to the left edge of the display (in the first line if 2 lines are displayed). It also sets I/D to 1
(increment mode) in entry mode. S of entry mode does not change.
Return Home
Return home sets DDRAM address 0 into the address counter, and returns the display to its original status
if it was shifted. The DDRAM contents do not change.
The cursor or blinking go to the left edge of the display (in the first line if 2 lines are displayed).
Den både tömmer displayen och nollar pekaren med "clear display"
Där har du felet.
Postat: 20 januari 2005, 18:23:09
av Mutiaz
Hmm.. Där ser man.. Nåt förslag på hur jag grejjar detta då?
Postat: 20 januari 2005, 19:34:37
av Hedis
Endeså skickar du right kommandot innan du skriver ut gubben, hur många right du skall skicka får bestämmas utav ännu en variabel som ökar varje gång du kör loopen.
Eller så får du skippa o nolla den o backa tillbaka 2 steg och skriva en tom ruta o sen din gubbe.
Ett hett tips är att kolla på hur man addresserar pekaren utan att hålla på o hoppa fram o tillbaka. Det är grymmt smidigt när man väl vet hur.
Jag fattade 0 utav texten i databladet o satte mig istället o labba fram hur adresseringen funka.
På så sätt kan man nolla displayen och sedan i ett kommando få den att ställa sig i mitten på nedre raden tex.
Postat: 20 januari 2005, 23:31:07
av Mutiaz
Jahapp! Då var det klart och funkar kanon! Tack hör hjälpen Hedis och Jocke!
Här är koden då:
Kod: Markera allt
DEFINE LOADER_USED 1
' LCD registers and bits
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTE
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE
DEFINE LCD_EBIT 1
tmp VAR BYTE
ADCON1 = 7
Low PORTE.2
' custom characters
LCDOut $FE, 64, $8e, $8e, $84, $8e, $95, $84, $8a, $91
loop:
LCDOut $FE, 1
LCDOut $00
For tmp = 0 TO 18
Pause 200
LCDOut $fe, 28
Next tmp
Pause 2000
GoTo loop
End