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