Too long, 6 sec!!! no??
2007/9/20, f_lamme <[EMAIL PROTECTED]>: > > 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] <foxboard%40yahoogroups.com>, 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] <foxboard%40yahoogroups.com>, > "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] <foxboard%40yahoogroups.com>, > 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 > > >> > >> > > > >> > >> > > > >> > >> > > >> > > > > >> > > > > >> > > > > >> > > > >> > > > > > > > > > > > > > > -- Stéphane Herraiz
