Casa > Notícies > Contingut

El motor del processador executa l’ordre,

Apr 26, 2019

5.12 CMD_DLSTART: inicieu una nova llista de visualització

Quan el motor del coprocessador executa aquesta ordre, espera fins a la pantalla actual

La llista s’escaneja i, a continuació, posa REG_CMD_DL a zero

image

Exemples

cmd_dlstart ();

...

cmd_dlswap ();


5.13 CMD_SWAP: canvieu la llista de visualització actual

Quan el motor del coprocessador executa aquesta ordre, demana un permut de llista de visualització

immediatament després d’escanejar la llista de visualització actual. Internament, el motor del co-processador

implementa aquesta ordre escrivint a REG_DLSWAP. Vegeu REG_DLSWAP

Definició.

Aquesta ordre del motor del co-processador no generarà cap comanda de llista de visualització a

memòria de la llista de visualització RAM_DL.

Prototip de C

void cmd_swap ();

image

Exemples

Cap


5.14 CMD_COLDSTART: definiu l'estat del motor del co-processador als valors predeterminats

Aquesta ordre marca el motor del coprocessador per restablir els estats per defecte.

Prototip de C

void cmd_coldstart ();

image

image


5.15 CMD_INTERRUPT - interruptor d'activació INT_CMDFLAG

Quan el motor del coprocessador executa aquesta ordre, es desactiva

INT_CMDFLAG.

Prototip de C

void cmd_interrupt (uint32_t ms);

Paràmetres

Senyora

Retardar abans dels interruptors de desactivació, en mil·lisegons. La interrupció està garantida

no disparar abans d’aquest retard. Si ms és zero, l’interrupció s’inicia immediatament.

image

Exemples

Per activar una interrupció després de finalitzar la càrrega d'un JPEG:

cmd_loadimage ();

...

cmd_interrupt (0); // imatge de càrrega anterior completa, interrupció del disparador

Per activar una interrupció en 0,5 segons:

cmd_interrupt (500);


5.16 CMD_APPEND: afegiu memòria a la llista de visualització

Afegeix un bloc de memòria a l’adreça de memòria de la llista de visualització actual on es troba el desplaçament

s'especifica a REG_CMD_DL.

Prototip de C

void cmd_append (uint32_t ptr,

uint32_t num);

Paràmetres

ptr

Inici de les ordres d'origen a la memòria principal

núm

Nombre de bytes a copiar. Aquest ha de ser un múltiple de 4.

image

Descripció

Un cop realitzat l’aplicació, el motor del co-processador augmentarà el REG_CMD_DL per

num per assegurar-vos que la llista de visualització està en ordre.

Exemples

...

cmd_dlstart ();

cmd_append (0, 40); // copieu 10 ordres de l’adreça de memòria principal 0

cmd (DISPLAY); // finalitza la llista de visualització

cmd_swap ();


5.17 CMD_REGREAD: llegiu un valor de registre

Prototip de C

void cmd_regread (uint32_t ptr,

resultat uint32_t);

Paràmetres

ptr

Adreça del registre per llegir

resultat

El valor del registre que s’ha de llegir a l’adreça ptr. image

Exemples

Per capturar l’hora exacta en què es completa l’ordre:

uint16_t x = rd16 (REG_CMD_WRITE);

cmd_regread (REG_CLOCK, 0);

...

printf ("% 08x n", rd32 (RAM_CMD + x + 8));


5.18 CMD_MEMWRITE: escriviu bytes a la memòria

Escriu els següents bytes a la memòria FT800. Aquesta ordre es pot utilitzar per establir

registrar valors o actualitzar els continguts de la memòria en moments concrets.

Prototip de C

void cmd_memwrite (uint32_t ptr,

uint32_t num);

Paràmetres

Ptr

L’adreça de memòria que s’ha d’escriure

núm

Nombre de bytes a escriure.

Descripció

El byte de dades ha de seguir immediatament al buffer d’ordres. Si el nombre de bytes

no és un múltiple de 4, aleshores s'haurien d’afegir 1, 2 o 3 bytes per garantir el 4 bytes

l'alineació de la següent comanda, aquests bytes de farcit poden tenir qualsevol valor. El

la finalització d’aquesta funció es pot detectar quan el valor de REG_CMD_READ és igual

a REG_CMD_WRITE.

Atenció: si utilitzeu aquesta ordre, pot corrompre la memòria del FT800 si s’utilitza

indegudament.

image

Exemples

Per canviar la brillantor de la llum de fons a 64 (mitja intensitat) per a una captura de pantalla en particular:

...

cmd_swap (); // finalitza la llista de visualització

cmd_dlstart (); // espera fins després de l’intercanvi

cmd_memwrite (REG_PWM_DUTY, 4); // escriviu al registre PWM_DUTY

cmd (100);