Hur få fart på 128x64 GLCD?

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Användarvisningsbild
treton
Inlägg: 57
Blev medlem: 15 oktober 2008, 10:34:21
Ort: Solna

Hur få fart på 128x64 GLCD?

Inlägg av treton »

Hej,

efter en hel del arbete med min glcd har jag kommit lika långt som jag var från början. Får inte ut ett skvatt på skärmen.

Min display är en 128*64 grafisk display SG12864C, jag jobbar med en PIC16F690 på breadboard. Min högsta önskan nu är att skriva ut en synlig pixel eller två på displayen. Jag har kollat att alla utgångar fungerar som de ska med lysdioder, jag har kopplat in kontrastpotentiometer, jag har studerat http://www.geocities.com/dinceraydin/dj ... cdsim.html. Dessutom har jag laddat ner alla olika 'glcd.c' på nätet och testat med mina förutsättningar.

Jag kan inte assembler, utan jobbar med c-kod via cc5x. Jag har testat _många_ varianter, men här är den senaste koden.

Kod: Markera allt

#include "16F690.h"
#pragma config FOSC = 4 //intern oscillator, RA4, RA5 tillgängliga för I/O
#pragma bit DI  	@ PORTB.4
#pragma bit ENABLE  @ PORTB.5
#pragma bit RW		@ PORTA.1
#pragma bit RESET	@ PORTA.2
#pragma bit CS1		@ PORTB.6
#pragma bit CS2		@ PORTB.7

void delay(char millisec);

void main( void)
{
	TRISA=0;TRISB=0;TRISC=0; //bara utgångar

	//Måste initiera dessa för att kunna använda PORTA-PORTC som digital I/O
	ANSEL=0;
	ANSELH=0; 
	
	delay(100);
	RESET=0;
	delay(100);
	RESET=1;
	delay(100);

	PORTC=0b00111111;delay(1); //display on
	DI=0;RW=0;ENABLE=1;CS1=1;CS2=1;RESET=1;
	delay(10);
	ENABLE=0;nop();nop(); ENABLE=1;nop();nop(); //

	PORTC=0b1100.0000;delay(1); //set STARTLINE
	DI=0;RW=0;ENABLE=1;CS1=1;CS2=1;RESET=1;
	delay(10);
	ENABLE=0;nop();nop(); ENABLE=1;nop();nop();

	PORTC=0b10111000;delay(1); //set page 0
	DI=0;RW=0;ENABLE=1;CS1=1;CS2=1;RESET=1;
	delay(10);
	ENABLE=0;nop();nop(); ENABLE=1;nop();nop();

	PORTC = 0b01000000;delay(1); //set y address 0			
	DI=0;RW=0;ENABLE=1;CS1=1;CS2=1;RESET=1;
	delay(10);
	ENABLE=0;nop();nop(); ENABLE=1;nop();nop();

	PORTC = 0b01010101;delay(1);	//write data
	DI=1;RW=0;ENABLE=1;CS1=1;CS2=1;RESET=1;
	delay(1);
	ENABLE=0;nop();nop(); ENABLE=1;nop();nop();
	
    while(1)
    {
    } 
}

void delay( char millisec)
{
    OPTION = 2;  /* prescaler divide by 8        */
    do  {
        TMR0 = 0;
        while ( TMR0 < 125)   /* 125 * 8 = 1000  */
            ;
    } while ( -- millisec > 0);
}
Mycket tacksam för input om vad jag borde testa. Vad är de vanligaste nybörjarfelen med glcd? Jag har svårt att förstå essensen av timingdiagrammet i manualen (jag är ingen elektriniker egentligen), vad är det viktiga att hålla koll på där? Jag kan tillägga att jag jobbat med två olika displayer med samma resultat.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få fart på 128x64 GLCD?

Inlägg av sodjan »

Vad är det för controller på modulen ?
Datablad på modulen ?
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Re: Hur få fart på 128x64 GLCD?

Inlägg av Stinrew »

KS0107

Datablad
Användarvisningsbild
Gorgus
Inlägg: 2021
Blev medlem: 24 april 2006, 22:42:42
Ort: Eskilstuna
Kontakt:

Re: Hur få fart på 128x64 GLCD?

Inlägg av Gorgus »

Kanske det här kan hjälpa? Exempel 2, längst ned på sidan.
Användarvisningsbild
treton
Inlägg: 57
Blev medlem: 15 oktober 2008, 10:34:21
Ort: Solna

Re: Hur få fart på 128x64 GLCD?

Inlägg av treton »

Jag har tittat på den tidigare. Den bygger på att man kompilerar med mikroC och använder dess integrerade biblioteksfunktioner för glcd.

Jag vill bara få ut en pixel, men utan att använda färdiga bibliotek. Men visst, får jag inte till det snart får jag kanske testa med mikroC.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Hur få fart på 128x64 GLCD?

Inlägg av v-g »

Resetpinnen måste hållas hög annars får du aldrig ut något på displayen. Om man "joxar" för mycket kan displayen (eller snarare kontrollerkretsarna) få fnatt och RESET är enda vägen ur det hela så det är bra att koppla denna till PICen i ett senare läge.

Sen slår man "på" displayen. Kolla sidan 11 i databladet <--(från fractronics)
Kontrasten har du fungerande antar jag?

Lånade denna bild från fractronics för att illustrera.
Bild

Annars är denna länk ett mycket bra sätt att starta på!
Användarvisningsbild
treton
Inlägg: 57
Blev medlem: 15 oktober 2008, 10:34:21
Ort: Solna

Re: Hur få fart på 128x64 GLCD?

Inlägg av treton »

Tack v-g!

Jag mitt nöt hade kopplat kontrasten mellan GND och +5 V som jag gjort med teckenbaserad LCD tidigare. Ditt schema fick mig att se felet tydligt. Tackar!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få fart på 128x64 GLCD?

Inlägg av sodjan »

Och ? Fungerar det nu ?
Användarvisningsbild
treton
Inlägg: 57
Blev medlem: 15 oktober 2008, 10:34:21
Ort: Solna

Re: Hur få fart på 128x64 GLCD?

Inlägg av treton »

Ja, nu funkar det fint. Det var kontrasten som jag kopplat mot positiv spänning i stället för mot negativ... Tack för hjälpen!
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Hur få fart på 128x64 GLCD?

Inlägg av v-g »

Varsågod, glad att kunna hjälpa till. :) Schemat är dock inte mitt utan Fractronis men jag använde det faktist själv första gången.
Skriv svar