GLCD PCF8833 su ARM LPC2148

H

hbaocr

Guest
hello;
Aš projekto naudojant GLCD (Phillip chipsetem naudoti NOKIA 6100)!Ir aš susitiko didelė problema, kai kodavimas, it.I nežinau kodėl mano kodas incorrect.Here kad kodas
Kodas:

/************************************************* *** // / LPC2148 -----> GLCD (6100 ekranas PCF8833)

/ / MOSI (P0.6) ------> DUOMENŲ (pin 3)

/ / SCK (P0.4) ------> SCK

/ / Sojų pasta (P0.5) ------- NC

/ / P0.2 ------> RS

/ / P0.7) ------------> CS

/ / P0.3---------------> Blink# include "LPC214x.H"

/ * Pototype skirsnis * / / / LPC2148 mpu Registruotis

/ / define LCD

/************************************************* ****************************

Command LCD NOKIA6100 (Phillips chipsetem)

************************************************** ***************************/

# define NOP 0x00 / / nop

# define SWRESET 0x01 / / programinė įranga iš naujo

# define BSTROFF 0x02 / / paaukštinta įtampa OFF

# define BSTRON 0x03 / / paaukštinta įtampa dėl

# define RDDIDIF 0x04 / / skaityti ekrano identifikavimo

# define RDDST 0x09 / / skaityti ekrano statusas

# define Sleepin 0x10 / / miegoti

# define SLEEPOUT 0x11 / / miego iš

# define PTLON 0x12 / / dalinio ekrano režimą

# define Noron 0x13 / / rodomas įprastu režimu

# define INVOFF 0x20 / / inversija OFF

# define INVON 0x21 / / inversija DĖL

# define DALO 0x22 / / visus pikseliui OFF

# define DAL 0x23 / / visus pikseliui DĖL

# define SETCON 0x25 / įrašymo / kontrastas

# define DISPOFF 0x28 / / rodyti OFF

# define DISPON 0x29 / / rodyti

# define CASET 0x2A / / adreso stulpelio nustatyti

# define PASET 0x2B / / puslapio adresą, nustatytus

# define RAMWR 0x2C / / įrašymo į atmintį

# define RGBSET 0x2D / / spalvų rinkinys

# define PTLAR 0x30 / / dalinis srityje

# define VSCRDEF 0x33 / / vertikalią slinktį apibrėžimas

# define TEOFF 0x34 / / bandymo būdas

# define TEON 0x35 / / bandymo būdas

# define MADCTL 0x36 / / atminties prieigos kontrolės

# define SEP 0x37 / / vertikalią slinktį pradėti adresas

# define IDMOFF 0x38 / / tuščiosios eigos režimu OFF

# define IDMON 0x39 / / tuščiosios eigos režimas

# define COLMOD 0x3A / / sąsaja taškų formatas

# define SETVOP 0xB0 / / nustatyti Vop

# define GRSRS 0xB4 / / apatinėje eilutėje apsikeitimo

# define TRS 0xB6 / / viršutinėje eilutėje apsikeitimo

# define DISCTR 0xB9 / / rodyti kontrolės

# define DOR 0xBA / / duomenų kad

# define TCDFE 0xBD / / įjungti / išjungti DF Temperatūros kompensacija

# define TCVOPE 0xBF / / įjungti / išjungti Vop temp comp

# define EB 0xC0 / / vidaus ar išorės generatorius

# define SETMUL 0xC2 / / nustatyti koeficientas

# define TCVOPAB 0xC3 / / nustatyti TCVOP linkę A ir B

# define TCVOPCD 0xC4 / / nustatyti TCVOP linkę c ir d

# define TCDF 0xC5 / / nustatyti dažnio daliklis

# define DF8COLOR 0xC6 / / diegimas daliklis dažnių 8 spalvų

# define SETBS 0xC7 / / nustatyti įstrižinės sistema

# define RDTEMP 0xC8 / / temperatūros Skaityti atgal

# define PIP 0xC9 / / n-line Inversija

# define RDID1 0xDA / / skaityti ID1

# define RDID2 0xDB / / skaityti ID2

# define RDID3 0xDC / / skaityti ID3

/ / define Kaisčiai

# define RS (1 <<2)

# define CS (1 <<7)

# define BL (1 <<3)

# define SDA (1 <<6) / / MOSI

# define CLK (1 <<4) / / CLK

//define program
//************************************************ *****************************

/ / Programos apibrėžimas

//************************************************ *****************************/

# define CS0 IOCLR0 = CS

# define CS1 IOSET0 = CS

# define CLK0 IOCLR0 = CLK

# define CLK1 IOSET0 = CLK

# define SDA0 IOCLR0 = Nuomoju

# define SDA1 IOSET0 = Nuomoju

# define RESET0 IOCLR0 = RS

# define RESET1 IOSET0 = RS/ * Pototype skirsnis * /

//************************************************ ****************************

/ / Programos prototipas

//************************************************ ****************************

tuščia lcd_init (void);

tuščia spi_init (void);

tuščia sendData (unsigned char duomenys);

tuščia sendCMD (unsigned char Lt);

tuščia LCD_put_pixel (unsigned char spalvotas, unsigned char x, unsigned char y);tuščia delay_ms (nepasiraðyta ilgai int); / / delsos laikas Pareigos

/ / Pagrindinė funkcijaint main (void)

(

unsigned int i;

/ / int

IODIR0 = CS | CLK | Nuomoju | RS;

lcd_init ();

o (1)

(

for (i = 1, i <131; i )

(

LCD_put_pixel (0xFC, i, 50);

)

/ / test code

)

)

//============= PIT int ==================tuščia spi_init (tuščia)

(

PINSEL0 | = 0x00001500; / / nustatyti port0.4-0.6 SPI0/ / SPI0 pradinė funkcija LCD6100

S0SPCCR = 8 / / SPI0 CLK = VPB CLK / S0PCCR

/ / 7.5 MHz = 60 MHz / 8

/ / SPI0 Registruokitės kontrolės

S0SPCR = 0x00000924; / / 9 bitų duomenų

/ / CPHA = 0, CPOL = 0

/ / Mpu kapitonas

/ / TPĮ pirmą

/ / SPIF pertraukinėja negali

)

//============= pabaigos funkcija ==============/************************************************* ****************************

LCD pradinio Pareigos

************************************************** ***************************/

tuščia lcd_init (tuščia)

(

int i = 0;spi_init ();/ *** Hardware Zresetuj LCD *** /

RESET0;

delay_ms (10);

RESET1;

delay_ms (10);

/ *** Pradinė valstybės *** /

CS0 / / cho phep LCD

sendCMD (SWRESET); / / Programinė įranga Zresetuj LCD

delay_ms (10);sendCMD (SLEEPOUT); / / pristabdytąją iš

delay_ms (10);

/ / sendCMD (INVON); / / atrodo būtina šio valdikliosendCMD (COLMOD); / / 8 bitų

sendData (0x02);

sendCMD (Noron); / / Paprastoji Ekranas

sendCMD (MADCTL); / / atminties prieigos kontrolės

sendData (0x40); / / Miror XsendCMD (SETCON); / / nustatyti kontrastas

sendData (63);

delay_ms (10);sendCMD (DISPON); / / rodyti

delay_ms (10);/ *** Nustatyti Juodosios Coulour į Backgound *** /

sendCMD (CASET);

sendData (0);

sendData (131);

sendCMD (PASET);

sendData (1);

sendData (131);

sendCMD (RAMWR);

for (i = 0; i <(131 * 131); i )

(

sendData (0);

)

)/************************************************* ****************************

Siųsti komandų LCD Pareigos

************************************************** ***************************/

tuščia sendCMD (unsigned char Ru)

(

CS0 / / lustą pasirinkite įjungti

S0SPDR = lt & ~ 0x0100 / / vadovavimo TPĮ "MAŽAI"

while ((S0SPSR & 0x80)! = 0x80 ){;;} / / Palaukite SPIF = 1 (SPI Siųsti Užbaigti)

CS1 / / odznaczyć

)/************************************************* ****************************

Siųsti duomenys LCD funkciją

************************************************** ***************************/

tuščia sendData (unsigned char duomenys)

(

CS0;

S0SPDR = duomenų | 0x0100 / / Nes duomenys TPĮ turi "DAUG"

while ((S0SPSR & 0x80)! = 0x80 ){;;} / / Palaukite SPIF = 1 (SPI Siųsti Užbaigti)

CS1;

)/************************************************* ****************************

LCD sklypo pikselių LCD Pareigos

************************************************** ***************************/tuščia LCD_put_pixel (unsigned char spalvotas, unsigned char x, unsigned char y)

(

sendCMD (PASET); / / puslapis pradžios / pabaigos barana = Eilutė

sendData (y);

sendData (131);

sendCMD (CASET); / / stulpelis pradžios / pabaigos barana = Colum

sendData (x);

sendData (131);

sendCMD (RAMWR); / / rašyti DUOMENYS

sendData (spalvotas);

)

/***********************/

/ * Delsos laikas Pareigos * /

/***********************/tuščia delay_ms (nepasiraðyta ilgi int count1)

(

unsigned int i, k;

k = count1 * 2600;

for (i = 0; i <k; i ) / / Ciklas Sumažinti Skaitliukas

)

 
Jūs turite aprašyti savo problemą tiksliai.kad žmonės galėtų jums padėti.

 

Welcome to EDABoard.com

Sponsor

Back
Top