comparison lcdtest/showppm.c @ 21:1d8c499711f1

lcdtest PPM display: sending the picture all at once is much faster
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 11 Apr 2018 00:09:50 +0000
parents f3671d3ad953
children
comparison
equal deleted inserted replaced
20:2e4f27ea7067 21:1d8c499711f1
137 cmd_show(argc, argv) 137 cmd_show(argc, argv)
138 char **argv; 138 char **argv;
139 { 139 {
140 int rc; 140 int rc;
141 unsigned n; 141 unsigned n;
142 u_char ftbuf[176*220*6+3], *dp;
142 143
143 ppm_filename = argv[1]; 144 ppm_filename = argv[1];
144 ppmfile = fopen(ppm_filename, "r"); 145 ppmfile = fopen(ppm_filename, "r");
145 if (!ppmfile) { 146 if (!ppmfile) {
146 perror(ppm_filename); 147 perror(ppm_filename);
154 write_ir(0x20); 155 write_ir(0x20);
155 write_dr(0); 156 write_dr(0);
156 write_ir(0x21); 157 write_ir(0x21);
157 write_dr(0); 158 write_dr(0);
158 write_ir(0x22); 159 write_ir(0x22);
160 /* GPIO setup */
161 dp = ftbuf;
162 *dp++ = 0x82;
163 *dp++ = 0x03;
164 *dp++ = 0x03;
159 for (n = 0; n < 176*220; n++) { 165 for (n = 0; n < 176*220; n++) {
160 rc = ppm_get_rgb(); 166 rc = ppm_get_rgb();
161 if (rc < 0) { 167 if (rc < 0) {
162 fclose(ppmfile); 168 fclose(ppmfile);
163 return(-1); 169 return(-1);
164 } 170 }
165 write_dr(rc); 171 /* upper byte */
172 *dp++ = 0x92;
173 *dp++ = 0; /* dummy addr */
174 *dp++ = rc >> 8;
175 /* lower byte */
176 *dp++ = 0x92;
177 *dp++ = 0; /* dummy addr */
178 *dp++ = rc;
166 } 179 }
167 fclose(ppmfile); 180 fclose(ppmfile);
181 do_ftdi_write(ftbuf, sizeof ftbuf);
168 return(0); 182 return(0);
169 } 183 }
170 184
171 cmd_cd(argc, argv) 185 cmd_cd(argc, argv)
172 char **argv; 186 char **argv;