Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[LCD] Grafisch lcd doet weird

Pagina: 1
Acties:
  • 140 views sinds 30-01-2008
  • Reageer

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Ok ik heb een probleem (tsjah verrassend begin), maar goed, ik heb een poos terug een LCD-scherm van 256x128 pixels gekocht (grafisch dus) bij http://www.lcdscherm.tk helemaal compleet, dus gesoldeerd volgens de schema's op die site. Nou het werkt perfect met oa powerlcd en LiquidMP3. Alleen nu ben ik al een tijdje bezig met zelf software schrijven, ook dat gaat goed... soms... 8)7 Ik gebruik visual basic icm DLPortIO. Nu is het zo dat soms (ong 6 van de 10 keer) de bovenste 2 regels van mijn scherm gevuld zijn iets wat volgens mij random pixels zijn, altijd alleen de bovenste 2 regels, en... soms gaat het goed :/
Nu kan ik hier de source code posten, maar ik vraag me af of de heren lcd-experts zin hebben om dat door te kijken...? if so plz ask!
Dus als je iets wil weten van mijn INIT-functie of Command-parameter-loop (De manier waarop je data op de lpt zet, CS verandert, CS weer verandert en data er weer af A0 aanpassen enz... 8)7 ) dan moet je dat ff zeggen maar misschien is het een bekend probleem??

Verwijderd

geef maar op die hap >> ik weet er redelijk veel vanaf, ik schrijf meestal me software in assembley voor mijn dedicated systems maar snap vb ook wel :P

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Hmm nu heb ik helemaal een probleem... het werkt :8)7 maar waarom!??!!? :S
Maar goed ik kan iig wel weer verder :) oja als er mensen zijn die om de init-codes ofzo verlegen zitten (aangezien dat mij het meeste tijd heeft gekost) dan ben ik wel bereid wat te posten maar ik geloof dat cyclonite die niet echt nodig heeft ;)

  • Rickstah
  • Registratie: December 2000
  • Laatst online: 01-09 18:02
is die lcd gewoon met groene backlight?

Verwijderd

wel offtopic maar bedankt voor de tip. Ik wou nog een LCD kopen, was nog aan het twijfellen..

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lcdout("40", 8, "30,87,07,1f,52,7f,20,0")      'System set
lcdout("44", 6, "00,00,7F,00,10,7F")      'Scroll
lcdout("5A", 1, "00")      'horizontal pixel shift=0
lcdout("5B", 1, "01")      'XOR mode, screen1 text, screen3 text (screen2 and screen4 are always graph)
lcdout("58", 1, "16")
lcdout("46", 2, "0,00")      ' Put csr text
lcdout("4C", 2, "42,0")      'cursor move right
lcdout("5D", 2, "4,86")      '5x8 cursor
lcdout("59", 0, "68")
lcdout("4C", 0, "")      'cursor move right
'Clear screen
For i = 0 To 30000
ate = lcdout("42", 8, "00,00,00,00,00,00,00,00")      ' MWRITE
Next


Ok het gaat toch niet helemaal goed, als ik iets op het scherm wil zetten wordt vanaf address 192 (decimaal), dat is regel 7 alle text data ook als pixels op de eerste regel gezet (dus geen letters) dit lijkt mij een layer probleem? :S
Maar goed hier boven zie je dus mijn init-code, zoals gezegd het gaat om een scherm van 256x128 pixels.....

Edit:
Hij zet ook losse pixels neer als ik de eerste 5 regels allemaal vol schrijf....

Edit 2:
Ik zie nu dat hij mijn scherm horzizontaal in 2 delen heeft gedeeld :S, ik heb hier wel over gelzen maar is eht ook mogelijk het scherm als 1 geheel te zien? (1 grote text layer dus)

[ Voor 45% gewijzigd door DRAFTER86 op 21-01-2003 18:26 ]


  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
*Sorry dat ging niet helemaal goed*

[ Voor 84% gewijzigd door DRAFTER86 op 21-01-2003 18:43 ]


Verwijderd

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
void InitLCD()
{
    RST_LO();
    Sleep(50);
    RST_HI();

    wbytes = (lc_width /font_width)+1;
//system set

    WriteCommand(0x40);
    WriteData(0x30);
    WriteData(0x80|font_width);
    WriteData(font_height);
    WriteData(wbytes-1);
    WriteData(wbytes+0x14); 
    WriteData(0x7f);
    WriteData(wbytes);
    WriteData(0x00);

//scroll
    WriteCommand(0x44); 
    WriteData(0x00); 
    WriteData(0x00);
    WriteData(0xc7);

    WriteData(0x00);
    WriteData(0x05);
    WriteData(0xc7);

//CSRDIR
    WriteCommand(0x4c);

//HDOR SCR

    WriteCommand(0x5a);
    WriteData(0x0);

    WriteCommand(0x46);     
    WriteData(00);
    WriteData(00);

/clearscreen
    WriteCommand(0x42);
    for (int i=0; i<1000; i++) WriteData(0);    
    WriteCommand(0x46);

    WriteData(0x0);
    WriteData(0x05);
    WriteCommand(0x42);
    for (i=0; i<8000; i++)
    WriteData(0);
     
    WriteCommand(0x5C); //cgrom at 0x7900
    WriteData(0x00);
    WriteData(0x7B);

    WriteCommand(0x5D);                    // CSR ROFM
    WriteData(0x04);                            // width
    WriteData(0x86);                            // height
    WriteCommand(0x5D);                    // CSR ROFM
    WriteData(0x04);                            // width
    WriteData(0x86);                            // height
                                                   
    //Disp on/off
    WriteCommand(0x59); 
    WriteData(0x04+16); 

//overlay
    WriteCommand(0x5B); 
    WriteData(01);  
} 

Mijn init code zoek de verschillen ;)

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Txs ik zal het eens proberen....

  • DaRuLe
  • Registratie: Februari 2001
  • Niet online

DaRuLe

Rauður, Hvítur, Blár!

Verwijderd schreef op 21 January 2003 @ 19:15:
...een hele lap mooie nette code...
Mijn init code zoek de verschillen ;)
Het verschil? De code is vele malen duidelijker :)
(maar delphi is nog beter >:) )

@topicstarter, ik denk eerder dat je kabels niet lekker geshield zijn.

[ Voor 71% gewijzigd door DaRuLe op 22-01-2003 08:32 ]

Ég er eins ánægður og ég get orðið.


  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
DaRuLe schreef op 22 January 2003 @ 08:32:
@topicstarter, ik denk eerder dat je kabels niet lekker geshield zijn.
Hmm dat denk ik dus niet aangezien powerlcd en anderen gewoon perfect werken, volgens mij init ik het scherm gewoon verkeerd. Maar volgens mij is mijn scherm nu horizontaal in 2 text layers verdeeld, kan ik niet gewoon 1 text layer over het hele scherm en een graphic layer over het hele scherm maken?? (dus over elkaar heen)

  • AcouSE
  • Registratie: Oktober 2000
  • Laatst online: 26-11 14:31

AcouSE

Swedish Chef

Ehm... is dit geen software-topic?

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
nou ik zoek mensen met verstand van lcd's, ik denk dat die eerder hier te vinden zijn...?

Verwijderd

't is meer p&w dan software maar maakt mij opzich niet uit waar je 'm dumpt :Y) heb je mijn init al geprobeerd draft?

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Jep ik heb jouw init geprobeerd, alleen als ik dan 3x een 'E' (45) schrijf dan komt er maar 1 E te staan :S
Maar voor welke afmetingen is die init van jou?

Weer een edit:
Het werkt nu! Geen idee waarom... maar het werkt, alleen hoe schrijf ik in de graphic layer? welk address?

[ Voor 56% gewijzigd door DRAFTER86 op 22-01-2003 10:44 ]


Verwijderd

't is een algemene init? zolang je lc_width maar vult met de breedte en je fontsize goed instelt werkt 't wel.

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Ow ik had em door :) met jouw CSRDIR schrijft ie naar links terwijl ik er vanuit ging dat hij naar rechts ging, nu werkt het goed, alleen weet ik niet hoe ik in de graphics schrijf...

Verwijderd

Graphics staan op 0x500

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Is er een manier om het lcd software-matig te resetten?

Verwijderd

hangt er vanaf hoe je 'm gewired heb, als je de rst aan een van je lpt pins hebt is 't eazy, anders maak je nog 'n 2e goede kans door gewoon de init nog een keertje uit te voeren.

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Nee helaas geen reset pin, ik d8 dat er mischien een commando voor zou zijn... Heb nu gewoon maar ff de stekker eruit getrokken om het geheugen te wissen aangezien ik ergens iets getypt had en het ging niet meer weg :)

Verwijderd

Dan wis je toch gewoon het complete geheugen? ;)

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:22
Ow lol zat weer verkeerd met die CSRDIR :) text modus werkt perfect krijg alleen geen losse pixels tot nou toe, maar ik ben iig weer op de goeie weg! TXS!

Verwijderd

losse pixels krijg je toch niet, je moet ze altijd in batches van de breedte van je font writen.
Pagina: 1