Glcd aansturen

hey alvast bedankt voor de moeite om deze code samen te stellen voor mij.
Maar ik heb het geprobeerd en jammer genoeg nog niets.
waar ik ook zit aan te denken als je kijkt op de datasheet is er
pin 6 die D/I word genoemd en nergens een RS pin mag ik deze D/I gebruiken als RS pin en hem RSPIN noemen in mijn programma?
Zie datasheet hier onder

ah hier heb ik het antwoord op de hierboven gestelde vraag gevonden

https://openlabpro.com/guide/ks0108-graphic-lcd-interfacing-with-pic18…

https://openlabpro.com/guide/spi-module-in-pic18f4550/

[Bericht gewijzigd door banana plug op zondag 20 augustus 2017 21:36:49 (17%)

Ik gebruik ook wel 2x 33pf condensatoren voor mijn 8 mhz xtal
Mag dit of is dit om het probleem vragen?

oke bedankt hadv dan is er toch al weer iets wat ik kan uitsluiten.
ik blijf het proberen ik moet hem aan de praat krijgen ik wil het niet opgeven grrrrr

Arco

Special Member

Je code in je startpost klopt weinig van. In het commentaar staat dat je een 20MHz kristal gebruikt. (wat dus niet zo is)
Je gebruikt de PLL, dus moet de clock na de PLLDIVider altijd 4MHz zijn. Jij hebt PLLDIV = 5, dat klopt niet als het kristal 8MHz is.
Met het 8MHz kristal moet PLLDIV dus 2 zijn, en moet XTAL op 48 staan... (XTAL is niet de kristalfrequentie, maar de CPU clock)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

bedankt Arco terug een stukje puzzel op zijn plaats.
Ik heb weer wat bijgeleerd.
Ik wist dit niet ik dacht dat xstal de waarde aan de compiler vertellen was
Had dit zo geleerd op de site picbasic.nl
Ps ik heb dit aangepast in mijn code maar nog steeds enkel de flits en voor de rest blanco scherm het moet dus nog aan iets anders liggen ook.
Maar alvast bedankt dat ik deze twee fouten heb kunnen veranderen zo sta ik al weer een stapje dichter.

[Bericht gewijzigd door banana plug op zondag 20 augustus 2017 23:17:19 (38%)

dus hier is mijn bijgeschaafde code

pic basic code:

[/Device = 18F4550
CONFIG_START
   PLLDIV   = 2         ; Divide by 2 (8 MHz oscillator input)
   CPUDIV   = OSC1_PLL2 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
   USBDIV   = 2         ; USB clock source comes from the 96 MHz PLL divided by 2
   FOSC     = HSPLL_HS    ; HS oscillator, PLL enabled, HS used by USB
   PWRT     = Off          ; PWRT disabled
   BOR      = OFF          ; Brown-out Reset disabled in hardware and software
   LVP      = OFF          ; Low voltage programming off
   WDT      = OFF          ; watch dog timer off
CONFIG_END
XTAL = 48	          
 
ALL_DIGITAL TRUE              ;Alle ingangen digitaal
 
LCD_DTPORT = PORTD
LCD_RSPIN = PORTB.1
LCD_ENPIN = PORTB.0
LCD_RWPIN = PORTB.2
LCD_CS1PIN = PORTB.5
LCD_CS2PIN = PORTB.4
LCD_TYPE = GRAPHIC
;INTERNAL_FONT = On ps deze heb ik er uitgehaald omdat hij niet compiled
;met type 1 display wel met type 2 SAMSUNG denk ik 
FONT_ADDR = 0
 
Cls
DelayMS 500
start: 

    Print "hallo"
    DelayMS 200 
GoTo start
End
 
Include "font.inc"]
Arco

Special Member

Nu ook nog het commentaar kloppend maken... :) (als je dat niet doet kun je het beter weglaten, sticht alleen verwarring)

pic basic code:

   PLLDIV   = 2         ; Divide by 5 (8 MHz oscillator input)
   PWRT     = Off       ; PWRT enabled

Moet zijn

pic basic code:

   PLLDIV   = 2         ; Divide by 2 (8 MHz oscillator input)
   PWRT     = Off       ; PWRT disabled

De XTAL setting is de snelheid waarop de processor loopt. Dat hoeft niet altijd de kristalfrequentie te zijn (zoals ook in dit geval)
Als de compiler die niet weet, kan 'ie geen waitloops maken...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

@banana plug: als je je email adres in je profiel invult stuur ik je de code zoals ik die voor een SED1531 heb ontwikkeld. Uiteraard is dat niet één op één toepasbaar, het is een voorbeeld, dus je zult op basis van je datasheet eea moeten aanpakken.

Just find out what you like and let it kill you
Arco

Special Member

Ik zou toch eerst een ledje laten knipperen in 1 sec ritme om te zien of hardware en config settings kloppen.
Ik doe dat altijd als eerste. Het heeft weinig zin op firmware te gaan zitten zweten, als de boel uberhaupt niet werkt...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Beste je mag mij zeker eens uw code door mailen
En ik zal inderdaat eens proberen een ledje aan te sturen.
Ik wil het echt graag vinden en ik ben blij dat ik al veel bijgeleerd heb
Alvast bedankt iedereen

je hebt gelijk

ik heb de led op porta.0 gesoldeerd en dit programmatje gebruikt maar geen led blink hij doet niks

pic basic code:

Device = 18F4550
CONFIG_START
   PLLDIV   = 2         
   CPUDIV   = OSC1_PLL2 
   USBDIV   = 2         
   FOSC     = HSPLL_HS    
   PWRT     = Off          
   BOR      = OFF          
   LVP      = OFF          
   WDT      = OFF          
CONFIG_END
XTAL = 48	          
 
ALL_DIGITAL TRUE              

Opnieuw:                      

Toggle PORTA.0                
DelayMS 500                   
GoTo Opnieuw                  

End

NOOIT je email adres in een thread zetten, je profiel aanpassen want daar kunnen alleen CO-leden bij!

Just find out what you like and let it kill you

oke ik ga hem verwijderen
Zou deze code goed moeten zijn om een led te blinken?
ik heb het geprobeerd maar dat lukt niet

Arco

Special Member

Ik zou liever LATA gebruiken (zoals het hoort) i.p.v. PORTA, dat werkt tenminste altijd.
(bij te zware belasing werkt toggle van PORTx pin niet, LATx wel. Heeft de led wel een serieweerstand?)

pic basic code:

Toggle LATA.0

Je kunt ook nog proberen de interne oscillator te gebruiken om probleem met kristal uit te sluiten.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

ik heb alles nog eens goed gesoldeerd en LATA gebruikt (iets bijgeleerd ik wist deze niet)
bij pic basic.nl word deze niet geleerd.
het resultaat is dat de led nu wel blinkt.
maar nog niets op het scherm :(

picbasic.nl is behoorlijk verouderd intussen.
bovendien wordt daar altijd de 16F628A gebruikt en die kent geen LATx registers, dat is pas bij de 18F

Just find out what you like and let it kill you

Ik heb nu de hardware getest en de led doet het.
Maar ik kan nog steeds geen programma werkend krijgen
in de datasheet kom ik dit stu tegen voor het aanstiren van de lcd

Kan ik voorbeeld een programmatje maken om he scherm te testen
enkel ket scherm aan leggen vb dat je een zwart gevuld scherm krijgt?
oor port D0 D1 D2 D3 D4 D5 D6 D7 D/I R/W te maken?
1 1 1 1 1 1 0 0 0 0

Of versta ik dt verkeerd uit de datasheet?

benleentje

Golden Member

Je kan inderdaad met informatie over hoe je direct de chip kan aansturen even wat proberen om op het scherm te krijgen.

Als je wat wilt zien op het display moet D/I moet 1 zijn.

D=1 scherm is zichtbaar
D=0 scherm is uit.

Daarom is het zo belangrijk om de goede display driver te hebben.
En zij ik al dat je deze eerst moet hebben voordat je het display op de goede manier kan aansturen.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Ik heb deze gemaak maar het lukt nog steeds niet
Is er iemand die voor mij een stukje demo code kan schrijven?
die zeker werkt ;)
Gewoon om het scherm eens te testen

pic basic code:

[Device = 18F4550
CONFIG_START
   PLLDIV   = 2         ; Divide by 2 (8 MHz oscillator input)
   CPUDIV   = OSC1_PLL2 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
   USBDIV   = 2         ; USB clock source comes from the 96 MHz PLL divided by 2
   FOSC     = HSPLL_HS    ; HS oscillator, PLL enabled, HS used by USB
   PWRT     = Off          ; PWRT disabled
   BOR      = OFF          ; Brown-out Reset disabled in hardware and software
   LVP      = OFF          ; Low voltage programming off
   WDT      = OFF          ; watch dog timer off
CONFIG_END
XTAL = 48	                                                 
 
ALL_DIGITAL TRUE              ;Alle ingangen digitaal
 
LCD_DTPORT = PORTD
LCD_RSPIN = PORTB.1
LCD_ENPIN = PORTB.0
LCD_RWPIN = PORTB.2
LCD_CS1PIN = PORTB.5
LCD_CS2PIN = PORTB.4
LCD_TYPE = GRAPHIC
INTERNAL_FONT = On 
;ps deze heb ik er uitgehaald omdat hij niet compiled
;met type 1 display wel met type 2 SAMSUNG denk ik 
;FONT_ADDR = 0
        ;76543210
TRISB = %00000000
TRISD = %00000000
TRISA = %00000000
 
DelayMS 500
start:      

            ;76543210
    PORTD = %00111111
    
    
End
 
Include "font.inc"]

is er soms iemand die mij een klein test programmatje wil maken met de 00111111 methode enkel maar om het scherm aan te krijgen op de manier die in de datasheet staat

Arco

Special Member

Dan zul je iemand moeten treffen die toevallig ook dat display heeft en ook de processor...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Met deze code krijg je dit GLCD aangestuurd.
"If Graphic, KS0108 or 1 is chosen then any output by the Print command will be directed to a graphic LCD based on the KS0108 chipset." Maar je hebt helemaal geen KS0108 display voor zover ik het begrepen heb.

Just find out what you like and let it kill you
Arco

Special Member

"The Samsung KS0108/KS0107 is equal to the Hitachi HD61202/HD61203 chipset"

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com