Diferencia entre revisiones de «ST7920»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 9: Línea 9:
= Fuentes personalizadas =
= Fuentes personalizadas =
= Código =
= Código =
uint8_t endColNum = (endCol + 15)/16; <br/>
<br/>
Esta manera es mucho mas elegante que la mia. Yo para poder hacer lo mismo hacia (hay que tener en cuenta que yo utilizo las posiciones de la 1 a la 128 y el de la 0 a la 127, por eso le resto a x 1 y a y 1):<br/>
int div_x = (x-1)/16;
int res_x_16 = (x-1)%16;
int res_x = (x-1)%8;
Pero en la posicion 8, si hacia esta formula me salia que estaba en la anterior AC y lo suplia haciendo:
if(res_x_16 != res_x){
  send(0x00, DATA);
}
porque solo en la division de 8 entre 8 el resto y el resultado son iguales.<br/>
<br/>
El lo que hace es que como el problema esta en la primera AC le suma siempre 15 para pasar a la siguiente AC (15 es lo maximo que le puede pasar para que no haga un salto de AC, si le sumara 16 siempre saldria que esta en una AC mas de la que realmente esta).<br/>
<br/>
Por tanto cuando esta en la AC0 (0-7) y le suma 15 y luego divide entre 16 pasa a

Revisión del 16:23 16 mar 2013

Características

Descripción Pines

Funciones Básicas

Funciones Extendidas

Como funciona la comunicación Serial (SPI)

Como funciona la comunicación paralela 8bits

(explicar que la de 4 bits tiene errores)

Modo Gráfico (GLCD)

Fuentes personalizadas

Código

uint8_t endColNum = (endCol + 15)/16;

Esta manera es mucho mas elegante que la mia. Yo para poder hacer lo mismo hacia (hay que tener en cuenta que yo utilizo las posiciones de la 1 a la 128 y el de la 0 a la 127, por eso le resto a x 1 y a y 1):

int div_x = (x-1)/16;
int res_x_16 = (x-1)%16;
int res_x = (x-1)%8;

Pero en la posicion 8, si hacia esta formula me salia que estaba en la anterior AC y lo suplia haciendo:

if(res_x_16 != res_x){
 send(0x00, DATA);
}

porque solo en la division de 8 entre 8 el resto y el resultado son iguales.

El lo que hace es que como el problema esta en la primera AC le suma siempre 15 para pasar a la siguiente AC (15 es lo maximo que le puede pasar para que no haga un salto de AC, si le sumara 16 siempre saldria que esta en una AC mas de la que realmente esta).

Por tanto cuando esta en la AC0 (0-7) y le suma 15 y luego divide entre 16 pasa a