TFT液晶画面(ILI9163c-160 * 128)を使用しています。 athrosAR9331モジュールspiで接続されています。 Athros AR9331はOpenWRTのLinuxディストリビューションで動作しています。だから、私はLCDをspidev0.1で運転しています。画面を塗りつぶしたり、文字列をLCDに書き込んだりすると、印刷に時間がかかりすぎます。ですから、十分な印刷速度を得るためには何ができますか?TFT液晶画面での問題
ありがとうございました。
これは、ここでの主なパフォーマンスの問題は、あなたがヒープ上に送信するデータのハードコピーを作成することである
void spi_transactor(unsigned char *write_data, int mode,int size)
{
int ret;
struct spi_ioc_transfer xfer[4];
unsigned char *init_reg;
init_reg = (unsigned char*) malloc(size);
memcpy(init_reg,write_data,size);
if (mode)
{
gpio_set_value(_rs, 1); // DATA
}
else
{
gpio_set_value(_rs, 0); // COMMAND
}
memset(xfer, 0, sizeof xfer);
xfer[0].bits_per_word = 8;
xfer[0].tx_buf = (unsigned long)init_reg;
xfer[0].rx_buf = 0; //(unsigned long) &buf_rx[0];
xfer[0].len = size; //wlength + rlength;
xfer[0].delay_usecs = 0;
xfer[0].speed_hz = speedx; // 8MHZ
//xfer[0].speed_hz = 160000000; // 40MHZ
ret = ioctl(spi_fd, SPI_IOC_MESSAGE(1), &xfer);
gpio_set_value(_rs, 1);
}
一般的に言うのは難しいです。私はあなたがspeedxを最大に調整したと仮定します。単一の要求にできるだけ多くのデータをパックしようとしますか?表示したいものに最適な表示コマンドを使用しようとしますか? – Ctx
そう...本当です。そして私は160 * 128配列の全体イメージを印刷する必要があるので、私はできるだけ多くのデータを単一の要求にパックしようとしています。だから私はいくつかのチャンクでこの配列を壊し、すべてのこのチャンクを1つずつ転送するよりも。 – Logan859
そして、* fbtft *ドライバをディストリビューションに追加して通常のコンソールまたはttyウィンドウとして使うというのはどうですか? – 0andriy