128x64 KS0108 knjižnica Keil

programski jeziki in programiranje

Moderator: tilz0R

128x64 KS0108 knjižnica Keil

OdgovorNapisal/-a RUros » 10 Mar 2017, 22:08

Iščem kakšno že izdelano knjižnico za grafični LCD 128x64 s KS0108 kontrolerjem, ki bi jo lahko dokaj hitro usposobil v Keil-u. Nekaj poizkušam portat U8glib knjižnico, pa bom verjetno še nekaj časa porabil preden bo začelo delati. Predelujem za LPC11C14 mikrokontroler.
RUros
 
Prispevkov: 331
Pridružen: 17 Jan 2015, 23:52
Kraj: Moravče
Zahvalil se je: 60 krat
Prejel zahvalo: 39 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 10

Re: 128x64 KS0108 knjižnica Keil

OdgovorNapisal/-a mkosmac » 11 Mar 2017, 18:36

Zdravo!
Poglej, če si boš s tem kaj pomagal: Link. Enkrat sem jo uporabil na AVR.
LP Matej
if(?) ask_google();
mkosmac
 
Prispevkov: 88
Pridružen: 20 Jan 2015, 20:17
Zahvalil se je: 20 krat
Prejel zahvalo: 8 krat
Uporabnika povabil: forest70
Število neizkoriščenih povabil: 4

Re: 128x64 KS0108 knjižnica Keil

OdgovorNapisal/-a RUros » 11 Mar 2017, 21:34

Tudi jaz. Zdaj me pa malo heca, ker imam data pine razmetane po portih, ker drugače ni šlo. Še bo treba malo razmisliti.
RUros
 
Prispevkov: 331
Pridružen: 17 Jan 2015, 23:52
Kraj: Moravče
Zahvalil se je: 60 krat
Prejel zahvalo: 39 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 10

Re: 128x64 KS0108 knjižnica Keil

OdgovorNapisal/-a RUros » 11 Mar 2017, 23:05

No, zdaj mi je pa uspelo jo zrihtat. Sem kar to na zgornjem linku portal na ARM-a, ki sem jo že pri AVR-jih uporabljal. Malo se mi je pri podatkovnih pinih zataknilo, ker imam razmetano po večih portih.

Koda: Izberi vse
unsigned char read_data(void)
{
   unsigned char data;
   
   data=((LPC_GPIO1->DATA&0x04)>>2);   //d0
   data |=((LPC_GPIO3->DATA&0x01)<<1);   //d1
   data |=((LPC_GPIO3->DATA&0x02)<<1);   //d2
   data |=(LPC_GPIO2->DATA&0x08);   //d3
   data |=(LPC_GPIO1->DATA&0x10);   //d4
   data |=((LPC_GPIO1->DATA&0x800)>>6);   //d5
   data |=((LPC_GPIO3->DATA&0x04)<<4);   //d6
   data |=((LPC_GPIO1->DATA&0x20)<<2);   //d7
   
   return data;
}

void set_data_out(unsigned char data)
{
   if(data&0x01)
      LPC_GPIO1->DATA |=(1<<2);   //d0
   else
      LPC_GPIO1->DATA &=~(1<<2);   //d0
   if(data&0x02)
      LPC_GPIO3->DATA |=(1<<0);   //d1
   else
      LPC_GPIO3->DATA &=~(1<<0);   //d1
   if(data&0x04)
      LPC_GPIO3->DATA |=(1<<1);   //d2
   else
      LPC_GPIO3->DATA &=~(1<<1);   //d2
   if(data&0x08)
      LPC_GPIO2->DATA |=(1<<3);   //d3
   else
      LPC_GPIO2->DATA &=~(1<<3);   //d3
   if(data&0x10)
      LPC_GPIO1->DATA |=(1<<4);   //d4
   else
      LPC_GPIO1->DATA &=~(1<<4);   //d4
   if(data&0x20)
      LPC_GPIO1->DATA |=(1<<11); //d5
   else
      LPC_GPIO1->DATA &=~(1<<11); //d5
   if(data&0x40)
      LPC_GPIO3->DATA |=(1<<2);   //d6
   else
      LPC_GPIO3->DATA &=~(1<<2);   //d6
   if(data&0x80)
      LPC_GPIO1->DATA |=(1<<5); //d7
   else
      LPC_GPIO1->DATA &=~(1<<5); //d7
}
RUros
 
Prispevkov: 331
Pridružen: 17 Jan 2015, 23:52
Kraj: Moravče
Zahvalil se je: 60 krat
Prejel zahvalo: 39 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 10


Vrni se na Software

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 3 gostov