R
roy_mm
Guest
Turiu Nokia 6610/6100 LCD Philips kontrolierius.Aš sąsajos jį atmega32 bent 16MHz krištolo ir JTAG neįgaliesiems.Aš naudoju winavr WinAVR 20.080.430.
Tai už įvairiaspalviais laukelyje LCD centro kodą.
Prašau man padėti ir ištaisyti šį kodą rašau (ar pasakyti kartą iš kodus galima rasti internete) ----
Kodas# include <avr/io.h>
# include <util/delay.h># define F_CPU 16000000UL# define SPIPORT PORTB
# define SPIDDR DDRB
# define CS 2
# define Nuomoju 3
# define RESET 4
# define CLK 5# define CBI (REG, bit) (REG & = ~ (1 <<bitų))
# define Skaičius (REG, bit) (REG | = (1 <<bitų))# define CS0 CBI (SPIPORT, CS);
# define CS1 Skaičius (SPIPORT, CS);
# define CLK0 CBI (SPIPORT, CLK);
# define CLK1 Skaičius (SPIPORT, CLK);
# define SDA0 CBI (SPIPORT SDA);
# define sda1 Skaičius (SPIPORT SDA);
# define RESET0 CBI (SPIPORT, RESET);
# define RESET1 Skaičius (SPIPORT, RESET);# define baitas unsigned char
baitas n = 0;
baitas s1, s2;
baitą R, G, B;tuščia sendCMD (baitas cmd);
tuščia sendData (baitas cmd);
tuščia shiftBits (baitas b);
tuščia setPixel (baitas R, baitas g baitas b);tuščia waitms (int MS)
(
int j;
for (j = 0; j <ms ir j )
(
_delay_ms (1);
)
)int main (void)
(
int i;DDRB = 0xFF;SPIDDR = (1 <<SDA) | (1 <<CLK) | (1 <<CS) | (1 <<RESET) / / Port krypties nustatymas/ / Hardware resetCS0
SDA0
CLK1RESET1
RESET0waitms (10);RESET1CLK0
Sda1
CLK1waitms (10);/ / Software Reset
sendCMD (0x01);/ / Sleep Out
sendCMD (0x11);/ / Set Constrast
sendCMD (0x25);
sendData (0x3F);/ / Booster ON
sendCMD (0x03);waitms (10);/ / Parodyti inversija dėl
sendCMD (0x21);Įprasta ekrano režimą
sendCMD (0x13);/ / Duomenys būtų
sendCMD (0xBA);/ / Atminties duomenų prieigos kontrolė
sendCMD (0x36);/ / Spalvų 8 bitų
sendCMD (0x3A);
sendData (2);/ / Setup spalvų peržvalgos lentelę
sendCMD (0x2D);sendData (0) / / raudona 000 vertė
sendData (2) / / raudona 001 vertė
sendData (5) / / raudona 010 vertė
sendData (7) / / raudona 011 vertė
sendData (9) / / raudona 100 vertė
sendData (11) / / raudona 101 vertė
sendData (14) / / raudona 110 vertė
sendData (16) / / raudona 111 vertė
sendData (0) / / žalios 000 vertė
sendData (2) / / žalios 001 vertė
sendData (5) / / Green 010 vertė
sendData (7) / / Green 011 vertė
sendData (9) / / žalios 100 vertė
sendData (11) / / Green 101 vertė
sendData (14) / / žalios 110 vertė
sendData (16) / / žalios 111 vertė
sendData (0) / / mėlyna 000 vertė
sendData (6); / mėlyna / 001 vertė
sendData (11) / / mėlyna 010 vertė
sendData (15) / / mėlyna 011 vertė/ / NOP
sendCMD (0x00);/ / Rodyti
sendCMD (0x29);Kolonėlė Adresas Set
sendCMD (0x2A);
sendData (0);
sendData (131);/ / Page adresą, nustatytus
sendCMD (0x2B);
sendData (0);
sendData (131);/ / Rašyti some stuff (fone)
sendCMD (0x2c);
for (i = 0; i <18.000; i )
(
sendData (28) / / 28 žalia
)waitms (200);/ / Draw multi-colored aikštėje ekrano centre
for (i = 0; i <4096; i ) (
setPixel (i, (i% 64) 32 (I / 64) 32);
)while (1 == 1)
(
/ / Dabar čia įdėti savo kodą))tuščia shiftBits (baitas b) (CLK0
if ((B & 128)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 64)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 32)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 16)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 8)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 4)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 2)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 1)! = 0) sda1 dar SDA0
CLK1)tuščia setPixel (unsigned char spalva, unsigned char x, unsigned char y)
(
x = 2; / / kažkodėl prasideda 2
sendCMD (0x2B) / / puslapis pradžios / pabaigos avinas
sendData (x);
sendData (132);
sendCMD (0x2A) / / stulpelis pradžios / pabaigos avinas
sendData
/ / kažkodėl prasideda 2
sendData (131);
sendCMD (0x2C) / / parašyti shit
sendData (spalvotas);
)/ / Siųsti duomenis
tuščia sendData (baitų duomenų) (CLK0
Sda1 / už Parametras 1 /
CLK1shiftBits (duomenys);
)/ / Siųsti cmd
tuščia sendCMD (baitų duomenų) (CLK0
SDA0 / 1 / cmd
CLK1shiftBits (duomenys);
)
Tai už įvairiaspalviais laukelyje LCD centro kodą.
Prašau man padėti ir ištaisyti šį kodą rašau (ar pasakyti kartą iš kodus galima rasti internete) ----
Kodas# include <avr/io.h>
# include <util/delay.h># define F_CPU 16000000UL# define SPIPORT PORTB
# define SPIDDR DDRB
# define CS 2
# define Nuomoju 3
# define RESET 4
# define CLK 5# define CBI (REG, bit) (REG & = ~ (1 <<bitų))
# define Skaičius (REG, bit) (REG | = (1 <<bitų))# define CS0 CBI (SPIPORT, CS);
# define CS1 Skaičius (SPIPORT, CS);
# define CLK0 CBI (SPIPORT, CLK);
# define CLK1 Skaičius (SPIPORT, CLK);
# define SDA0 CBI (SPIPORT SDA);
# define sda1 Skaičius (SPIPORT SDA);
# define RESET0 CBI (SPIPORT, RESET);
# define RESET1 Skaičius (SPIPORT, RESET);# define baitas unsigned char
baitas n = 0;
baitas s1, s2;
baitą R, G, B;tuščia sendCMD (baitas cmd);
tuščia sendData (baitas cmd);
tuščia shiftBits (baitas b);
tuščia setPixel (baitas R, baitas g baitas b);tuščia waitms (int MS)
(
int j;
for (j = 0; j <ms ir j )
(
_delay_ms (1);
)
)int main (void)
(
int i;DDRB = 0xFF;SPIDDR = (1 <<SDA) | (1 <<CLK) | (1 <<CS) | (1 <<RESET) / / Port krypties nustatymas/ / Hardware resetCS0
SDA0
CLK1RESET1
RESET0waitms (10);RESET1CLK0
Sda1
CLK1waitms (10);/ / Software Reset
sendCMD (0x01);/ / Sleep Out
sendCMD (0x11);/ / Set Constrast
sendCMD (0x25);
sendData (0x3F);/ / Booster ON
sendCMD (0x03);waitms (10);/ / Parodyti inversija dėl
sendCMD (0x21);Įprasta ekrano režimą
sendCMD (0x13);/ / Duomenys būtų
sendCMD (0xBA);/ / Atminties duomenų prieigos kontrolė
sendCMD (0x36);/ / Spalvų 8 bitų
sendCMD (0x3A);
sendData (2);/ / Setup spalvų peržvalgos lentelę
sendCMD (0x2D);sendData (0) / / raudona 000 vertė
sendData (2) / / raudona 001 vertė
sendData (5) / / raudona 010 vertė
sendData (7) / / raudona 011 vertė
sendData (9) / / raudona 100 vertė
sendData (11) / / raudona 101 vertė
sendData (14) / / raudona 110 vertė
sendData (16) / / raudona 111 vertė
sendData (0) / / žalios 000 vertė
sendData (2) / / žalios 001 vertė
sendData (5) / / Green 010 vertė
sendData (7) / / Green 011 vertė
sendData (9) / / žalios 100 vertė
sendData (11) / / Green 101 vertė
sendData (14) / / žalios 110 vertė
sendData (16) / / žalios 111 vertė
sendData (0) / / mėlyna 000 vertė
sendData (6); / mėlyna / 001 vertė
sendData (11) / / mėlyna 010 vertė
sendData (15) / / mėlyna 011 vertė/ / NOP
sendCMD (0x00);/ / Rodyti
sendCMD (0x29);Kolonėlė Adresas Set
sendCMD (0x2A);
sendData (0);
sendData (131);/ / Page adresą, nustatytus
sendCMD (0x2B);
sendData (0);
sendData (131);/ / Rašyti some stuff (fone)
sendCMD (0x2c);
for (i = 0; i <18.000; i )
(
sendData (28) / / 28 žalia
)waitms (200);/ / Draw multi-colored aikštėje ekrano centre
for (i = 0; i <4096; i ) (
setPixel (i, (i% 64) 32 (I / 64) 32);
)while (1 == 1)
(
/ / Dabar čia įdėti savo kodą))tuščia shiftBits (baitas b) (CLK0
if ((B & 128)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 64)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 32)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 16)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 8)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 4)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 2)! = 0) sda1 dar SDA0
CLK1CLK0
if ((B & 1)! = 0) sda1 dar SDA0
CLK1)tuščia setPixel (unsigned char spalva, unsigned char x, unsigned char y)
(
x = 2; / / kažkodėl prasideda 2
sendCMD (0x2B) / / puslapis pradžios / pabaigos avinas
sendData (x);
sendData (132);
sendCMD (0x2A) / / stulpelis pradžios / pabaigos avinas
sendData
sendData (131);
sendCMD (0x2C) / / parašyti shit
sendData (spalvotas);
)/ / Siųsti duomenis
tuščia sendData (baitų duomenų) (CLK0
Sda1 / už Parametras 1 /
CLK1shiftBits (duomenys);
)/ / Siųsti cmd
tuščia sendCMD (baitų duomenų) (CLK0
SDA0 / 1 / cmd
CLK1shiftBits (duomenys);
)