The Dislpay works correctly, but it uses 6 second to write 320*240.
With the old way he was putting us about 15 second.

--- In [email protected], John Crispin <[EMAIL PROTECTED]> wrote:
>
> glad it worked, speed ok now ?
> what lcd are you using exactly ?
> 
> 
> Quoting f_lamme <[EMAIL PROTECTED]>:
> 
> > Have solved was a signal problem
> > --- In [email protected], "f_lamme" <f_lamme@> wrote:
> >>
> >> I have changed my function so
> >>
> >> void lcd_put_byte(unsigned int value, char clk, int reg)
> >> {
> >>    unsigned int val2;
> >>         val2 = value<<8;
> >>    gpiosetbits(PORTG, val2 & 0xff00);
> >>    gpioclearbits(PORTG, (~val2) & 0xff00);
> >>         gpioclearbits(PORTG, PG1);
> >>    gpiosetbits(PORTG, PG3);
> >>    gpioclearbits(PORTG, PG3);
> >>    if (clk==1)
> >>    {
> >>            gpiosetbits(PORTG, PG3);
> >>            gpioclearbits(PORTG, PG3);
> >>    }
> >>    gpiosetbits(PORTG, PG1);
> >>
> >> }
> >>
> >> When I call the function I do such a thing
> >>         adr=(r-1)*240+(c-1);
> >>    byte=((adr >> 16) & 0x00000001);
> >>    banco=(banco << 1) & 0x03;
> >>    byte=byte | banco;
> >>    gpioclearbits(PORTG, PG16);
> >>    gpioclearbits(PORTG, PG17);
> >>    gpioclearbits(PORTG, PG18);
> >>    lcd_put_byte(byte,0,REG0);
> >>
> >> With the old system everything was working slowly, but now the
> >> dispatch of the data to the dislpay does not work
> >> > > PG8-PG15
> >> > >
> >> > > --- In [email protected], John Crispin <john@> wrote:
> >> > >>
> >> > >> hi
> >> > >>
> >> > >> gpiosetbits(PORTG, (value << 8) & 0xffffff00);
> >> > >> gpioclearbits(PORTG, (~value << 8) & 0xffffff00);
> >> > >>
> >> > >>
> >> > >> although the & 0xffffff00 bit is not really needed, it is
just for
> >> > > sanity
> >> > >>
> >> > >> john
> >> > >>
> >> > >> >     if (value&0x01)
> >> > >> >             gpiosetbits(PORTG, PG8);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG8);
> >> > >> >     if (value&0x02)
> >> > >> >             gpiosetbits(PORTG, PG9);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG9);
> >> > >> >     if (value&0x04)
> >> > >> >             gpiosetbits(PORTG, PG10);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG10);
> >> > >> >     if (value&0x08)
> >> > >> >             gpiosetbits(PORTG, PG11);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG11);
> >> > >> >     if (value&0x10)
> >> > >> >             gpiosetbits(PORTG, PG12);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG12);
> >> > >> >     if (value&0x20)
> >> > >> >             gpiosetbits(PORTG, PG13);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG13);
> >> > >> >     if (value&0x40)
> >> > >> >             gpiosetbits(PORTG, PG14);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG14);
> >> > >> >     if (value&0x80)
> >> > >> >             gpiosetbits(PORTG, PG15);
> >> > >> >     else
> >> > >> >             gpioclearbits(PORTG, PG15);
> >> > >> >     // cs e clk
> >> > >> >     gpioclearbits(PORTG, PG1);
> >> > >> >     gpiosetbits(PORTG, PG3);
> >> > >> >     gpioclearbits(PORTG, PG3);
> >> > >> >     if (clk==1)
> >> > >> >     {
> >> > >> >             gpiosetbits(PORTG, PG3);
> >> > >> >             gpioclearbits(PORTG, PG3);
> >> > >> >     }
> >> > >> >     gpiosetbits(PORTG, PG1);
> >> > >> >
> >> > >> > }
> >> > >> > the problem and the slowness with which the byte is sent
> >> because the
> >> > >> > byte is sent bit per bit.
> >> > >> > Does a way exist to send a whole byte?
> >> > >> > I excuse but I do not speak English very well
> >> > >> >
> >> > >> >
> >> > >>
> >> > >
> >> > >
> >> > >
> >> >
> >>
> >
> >
> >
>


Reply via email to