Dom > Vijesti > Sadržaj

Primjer vremena

Apr 26, 2019

2.2.4 Primjer mjerenja vremena: 480x272 na 60Hz

Za ažuriranje zaslona na 60 Hz, postoji 48000000/60 = 800000 brzih satova po kadru.

Postavljanje PCLK djelitelja REG_PCLK na 5 daje PCLK frekvenciju od 9,6 MHz i

800000/5 = 160000KKK po kadru.

Za zaslon od 480 x 272, tipično horizontalno razdoblje je 525 satova, a vertikalno razdoblje je

286 redaka. Malo pretraživanja pokazuju da veličina od 548 x 292 daje razdoblje od 160016 satova,

vrlo blizu cilja. Tako s prikazom REG_HCYCLE = 548 i REG_VCYCLE = 292

frekvencija je gotovo točno 60Hz. Ostale postavke registra mogu se postaviti izravno iz

tablica zaslona.


2.2.5 Redoslijed inicijalizacije

Ovaj odjeljak opisuje sekvencu inicijalizacije u drugom scenariju.

 Inicijalna sekvenca tijekom podizanja sustava:

1. Koristite MCU SPI sat ne više od 11MHz

2. Pošalji naredbu Host CLKEXT na FT800

3. Pošalji naredbu Host (AKTIVNO) kako bi se omogućilo vrijeme FT800.

4. Konfigurirajte vremenske registre videa, osim REG_PCLK

5. Napišite prvi popis prikaza

6. Napišite REG_DLSWAP, FT800 odmah zamjenjuje prikaz popisa

7. Omogućite kontrolu pozadinskog svjetla za prikaz

8. Napišite REG_PCLK, video izlaz počinje s prvim popisom prikaza

9. Koristite MCU SPI sat ne više od 30MHz


MCU_SPI_CLK_Freq (<11mhz); koristite="" mcu="" spi="" sat="" manji="" od="">

// poslati naredbu "CLKEXT" na FT800

// šalje naredbu hosta "ACTIVE" na FT800

/ * Konfiguriranje registara prikaza - demonstracija WQVGA razlučivosti * /

wr16 (REG_HCYCLE, 548);

wr16 (REG_HOFFSET, 43);

wr16 (REG_HSYNC0, 0);

wr16 (REG_HSYNC1, 41);

wr16 (REG_VCYCLE, 292);

wr16 (REG_VOFFSET, 12);

wr16 (REG_VSYNC0, 0);

wr16 (REG_VSYNC1, 10);

wr8 (REG_SWIZZLE, 0);

wr8 (REG_PCLK_POL, 1);

wr8 (REG_CSPREAD, 1);

wr16 (REG_HSIZE, 480);

wr16 (REG_VSIZE, 272);

/ * napisati prvi popis prikaza * /

wr32 (RAM_DL + 0, CLEAR_COLOR_RGB (0,0,0));

wr32 (RAM_DL + 4, CLEAR (1,1,1));

wr32 (RAM_DL + 8 prikaz ());

wr8 (REG_DLSWAP, DLSWAP_FRAME); // prikaz popisa za prikaz

wr8 (REG_GPIO_DIR, 0x80 | Ft_Gpu_Hal_Rd8 (phost, REG_GPIO_DIR));

wr8 (REG_GPIO, 0x080 | Ft_Gpu_Hal_Rd8 (phost, REG_GPIO));

wr8 (REG_PCLK, 5); // nakon što je ovaj zaslon vidljiv na LCD-u

MCU_SPI_CLK_Freq (<30mhz); koristite="" mcu="" spi="" sat="" do="">

Isječak koda 1 Slijed inicijalizacije



 Inicijalna sekvenca iz Power Down-a pomoću PD_N pin-a:

1. Vozite PD_N pin visoko

2. Pričekajte najmanje 20ms

3. Izvedite "Inicijalna sekvenca za vrijeme podizanja sustava" od koraka 1 do 9

 Slijed inicijalizacije iz stanja mirovanja:

1. Pošalji naredbu Host "ACTIVE" kako bi se omogućilo vrijeme FT800

2. Pričekajte najmanje 20ms

3. Izvedite "sekvencu inicijalizacije tijekom podizanja" od koraka 5 do 8

 Inicijalizacija iz stanja pripravnosti:

Izvršite sve korake navedene u "Inicijalizacijskom slijedu iz stanja mirovanja"

osim čekanja najmanje 20ms u koraku 2.

Napomena: Informacije o načinima napajanja potražite u podatkovnom listu FT800. Slijedite odjeljak 2.3 za

upravljanje zvukom tijekom isključivanja i resetiranja.


2.3 Sintetizator zvuka

Primjer koda za reprodukciju C8 na ksilofonu:

wr8 (REG_VOL_SOUND, 0xff); // namjestite glasnoću na maksimum

wr16 (REG_SOUND, (0x6C < 8)="" |=""> // C8 MIDI napomena o ksilofonu

wr8 (REG_PLAY, 1); // reproducira zvuk

Snippet koda 2 zvuka sintisajzer igra C8 na ksilofon


Primjer koda za provjeru statusa reprodukcije zvuka:

Sound_status = rd8 (REG_PLAY), // 1-play se događa, 0-play je završen

Sintetizator zvuka koda 3 provjerava status reprodukcije zvuka



Primjer koda za zaustavljanje reprodukcije zvuka:

wr16 (REG_SOUND, 0x0), // konfiguriranje tišine kao zvuka koji će se reproducirati

wr8 (REG_PLAY, 1); // reprodukcija zvuka

Sound_status = rd8 (REG_PLAY), // 1-play se događa, 0-play je završen

Sintetizator zvuka koda 4 prestaje reproducirati zvuk


Da biste izbjegli zvučni pop zvuk pri ponovnom postavljanju ili promjeni stanja napajanja, pokrenite "mute" zvuk,

i pričekajte da se dovrši (dovršetak reprodukcije zvuka je kada REG_PLAY sadrži vrijednost

od 0). Time se vrijednost izlaza postavlja na razinu 0. Na ponovnom pokretanju, audio motor reproducira

"uključi zvuk" kako bi se izlaz doveo do pola razine.

Napomena: Više informacija o sintisajzeru zvuka i zvuku potražite u podatkovnom listu FT800

reprodukcije.


2.4 Reprodukcija zvuka

FT800 podržava tri vrste audio formata: 4-bitni IMA ADPCM, 8-bitni potpisani PCM, 8-bitni uLaw. Za IMA ADPCM format, imajte na umu redoslijed bajta: unutar jednog bajta, prvi uzorak

(4 bita) mora se locirati od bita 0 do bita 3, dok drugi uzorak (4 bita) mora biti lociran od

bit 4 do bit 7.

Za reprodukciju zvučnih podataka u FT800 RAM-u, FT800 zahtijeva početnu adresu u

REG_PLAYBACK_START poravnava se na 64 bita (8 bajtova). Osim toga, duljina zvuka

podaci navedeni u REG_PLAYBACK_LENGTH moraju biti poravnati sa 64 bita (8 bajtova).

Da biste saznali kako reproducirati audio podatke, provjerite primjerak koda u nastavku:

wr8 (REG_VOL_PB, 0xFF); // konfiguriranje glasnoće audio reprodukcije

wr32 (REG_PLAYBACK_START, 0); // konfiguriranje početne adrese audio međuspremnika

wr32 (REG_PLAYBACK_LENGTH, 100 * 1024); // konfiguriranje duljine audio međuspremnika

wr16 (REG_PLAYBACK_FREQ, 44100); // konfiguriranje frekvencije uzorkovanja zvuka

wr8 (REG_PLAYBACK_FORMAT, ULAW_SAMPLES); // konfiguriranje audio formata

wr8 (REG_PLAYBACK_LOOP, 0), / jednom konfiguriranje ili kontinuirana reprodukcija

wr8 (REG_PLAYBACK_PLAY, 1); // pokretanje reprodukcije zvuka

Isječak koda 5 Reprodukcija zvuka



// AudioPlay_Status = rd8 (REG_PLAYBACK_PLAY); // 1-audio reprodukcija se događa,

Reprodukcija 0-audio zvuka je završena

Isječak koda 6 Provjerite status reprodukcije zvuka

wr32 (REG_PLAYBACK_LENGTH, 0); // konfiguriranje duljine reprodukcije na 0

wr8 (REG_PLAYBACK_PLAY, 1); // pokretanje reprodukcije zvuka

Isječak koda 7 Zaustavite reprodukciju zvuka


2.5 Rutine grafike

Ovaj odjeljak opisuje grafičke značajke i bilježi nekoliko primjera.

2.5.1 Početak rada

Ovaj kratki primjer stvara zaslon s tekstom "FTDI" na njemu, s crvenom točkom.

image

Kod za crtanje zaslona:

wr32 (RAM_DL + 0, CLEAR (1, 1, 1)); // čist zaslon

wr32 (RAM_DL + 4, BEGIN (BITMAPS)); // početak crtanja bitmapa

wr32 (RAM_DL + 8, VERTEX2II (220, 110, 31, 'F')); // ascii F u fontu 31

wr32 (RAM_DL + 12, VERTEX2II (244, 110, 31, 'T')); // ascii T

wr32 (RAM_DL + 16, VERTEX2II (270, 110, 31, 'D')); // ascii D

wr32 (RAM_DL + 20, VERTEX2II (299, 110, 31, 'I')); // ascii I

wr32 (RAM_DL + 24, END ());

wr32 (RAM_DL + 28, COLOR_RGB (160, 22, 22)); // mijenjaju boju u crvenu

wr32 (RAM_DL + 32, POINT_SIZE (320)); // zadana veličina točke do 20 piksela

radius

wr32 (RAM_DL + 36, BEGIN (POINTS)); // početak crtanja točaka

wr32 (RAM_DL + 40, VERTEX2II (192, 133, 0, 0)); // crvena točka

wr32 (RAM_DL + 44, END ());

wr32 (RAM_DL + 48, DISPLAY ()); // prikazuje sliku

Isječak koda 8 Početak rada


Nakon što se gornje naredbe za crtanje učitaju u RAM-ov popis s prikazom, registrirajte

REG_DLSWAP mora biti postavljen na 0x02 da bi novi popis prikaza bio aktivan

na sljedećem osvježavanju okvira.

Bilješka:

 Popis prikaza uvijek počinje na adresi RAM_DL

 Adresa se uvijek povećava za 4 (bajtova) jer svaka naredba ima 32-bitnu širinu.

 Preporučuje se uporaba naredbe CLEAR prije bilo kojeg drugog crteža

operacije, kako bi se FT800 grafički pogon stavio u poznato stanje.

• Kraj popisa prikaza uvijek je označen naredbom DISPLAY

2.5.2 Koordinatna ravnina

Slika ispod prikazuje koordinatnu ravninu grafike i njezino vidljivo područje.

Valjane X i Y koordinate su u rasponu od -1024 do 1023 piksela preciznosti, tj. Od

-16384 do 16383 u preciznosti 1/16 piksela.


image

2.5.3 Crtež crteža

Opći uzorak za crtanje je:

 BEGIN s jednim od primitivnih tipova

 Unesite jedan ili više vrhova koji određuju položaj primitiva

zaslon

 END za označavanje kraja primitivnosti

(napomena: U mnogim primjerima naredba END nije izričito navedena)

Primitivni tipovi koje podržava grafički pogon su:

 BITMAPS - pravokutni pikselni nizovi, u različitim formatima boja

 POINTS - točke koje nisu usmjerene, radijus točke iznosi 1-256 piksela

 LINIJE - anti-aliased linije, širine od 0 do 4095 1/16 jedinica piksela.

(širina je od središta linije do granice)

 LINE_STRIP - linije koje nisu povezane, spojene su jedna do druge

 RECTS - pravokutnici okruglog oblika, zakrivljenost uglova se može podešavati

pomoću LINE_WIDTH.

 EDGE_STRIP_A / B / L / R rubne trake

Primjeri


Crtanje točaka s promjenjivim radijusom od 5 piksela do 13 piksela s različitim bojama:

dl (COLOR_RGB (128, 0, 0));

dl (POINT_SIZE (5 * 16));

dl (BEGIN (POINTS));

dl (VERTEX2F (30x16, 17x16));

dl (COLOR_RGB (0, 128, 0));

dl (POINT_SIZE (8 * 16));

dl (VERTEX2F (90x16, 17x16));

dl (COLOR_RGB (0, 0, 128));

dl (POINT_SIZE (10 * 16));

dl (VERTEX2F (30x16, 51x16));

dl (COLOR_RGB (128, 128, 0));

dl (POINT_SIZE (13 * 16));

dl (VERTEX2F (90x16, 51x16));

image

Naredba VERTEX2F daje mjesto središta kruga.

Nacrtajte linije različitih veličina od 2 piksela do 6 piksela s različitim bojama (širina linije

veličina je od središta linije do granice):

dl (COLOR_RGB (128, 0, 0));

dl (LINE_WIDTH (2 * 16));

dl (BEGIN (LINIJE));

dl (VERTEX2F (30x16, 38x16));

dl (VERTEX2F (30x16, 63x16));

dl (COLOR_RGB (0, 128, 0));

dl (LINE_WIDTH (4 * 16));

dl (VERTEX2F (60x16, 25x16));

dl (VERTEX2F (60x16, 63x16));

dl (COLOR_RGB (128, 128, 0));

dl (LINE_WIDTH (6 * 16));

dl (VERTEX2F (90x16, 13x16));

dl (VERTEX2F (90x16, 63x16));

Naredbe VERTEX2F su u parovima za definiranje početne i završne točke linije.



Nacrtajte pravokutnik dimenzija 5x25, 10x38 i 15x50 (koristi se širina linije

za zakrivljenost kutova, LINE_WIDTH piksela se dodaju u oba smjera uz

dimenzija pravokutnika):

image

dl (COLOR_RGB (128, 0, 0));

dl (LINE_WIDTH (1 * 16));

dl (BEGIN (RECTS));

dl (VERTEX2F (28x16, 38x16));

dl (VERTEX2F (33x16, 63x16));

dl (COLOR_RGB (0, 128, 0));

dl (LINE_WIDTH (5 * 16));

dl (VERTEX2F (50x16, 25x16));

dl (VERTEX2F (60x16, 63x16));

dl (COLOR_RGB (128, 128, 0));

dl (LINE_WIDTH (10 * 16));

dl (VERTEX2F (83x16, 13x16));

dl (VERTEX2F (98x16, 63x16));

Naredbe VERTEX2F su u paru za definiranje gornjeg lijevog i donjeg desnog ugla

pravokutnik.

image

image

image

image

2.5.4 Pisanje popisa prikaza

Pisanje unosa popisa prikaza s wr32 () je dugotrajno i sklon pogreškama, pa umjesto toga a

funkcija može se koristiti:

image

image

image

Naredba COLOR_RGB mijenja trenutnu boju crteža koja boja bitmapa.

Naredba COLOR_A mijenja trenutni alfa crtež, mijenjajući transparentnost

crteža: alfa od 0 znači potpuno prozirno i alfa od 255 je u potpunosti

neproziran. Ovdje vrijednost 150 daje djelomično transparentan učinak.

image

2.5.7 VERTEX2II i VERTEX2F

Gornja naredba VERTEX2II omogućuje samo pozitivne koordinate zaslona. Ako je

bitmap je djelomično isključen zaslon, na primjer tijekom pomicanja zaslona, onda je potrebno

odredite negativne koordinate zaslona. Naredba VERTEX2F omogućuje negativ

koordinate. Ona također omogućuje djelomične koordinate, jer specificira zaslon (x, y) u

jedinica od 1/16 piksela.

Na primjer, crtanje iste bitmape na položaju zaslona (-10, -10) pomoću VERTEX2F:

image

image

image

2.5.9

Grafički motor nema okvirni međuspremnik: koristi dinamičku kompoziciju za svaki od njih

tijekom skeniranja. Zbog toga postoji ograničena količina vremena na raspolaganju

nacrtajte svaku liniju. Ovo vrijeme ovisi o parametrima skeniranja (REG_PCLK i

REG_HCYCLE) ali nikada nije manje od 2048 unutarnjih ciklusa takta.

Neka ograničenja izvedbe:

 Duljina popisa prikaza mora biti manja od 2048 uputa, jer

grafički motor dohvaća popis naredbi jedan po satu.

 Izvedba piksela grafičkog motora je 4 piksela po satu, za bilo koji

redak sa 2048 naredbama prikaza mora biti ukupna izvedba piksela

manje od 8192.

 Za neke bitmap formate, brzina crtanja je 1 piksela po satu. Ovi su

TEXT8X8, TEXTVGA i PALETTED.

 Kod bilinearnih filtriranih piksela, brzina crtanja je smanjena na el piksela po satu.

Većina bitmap formata crta na 1 piksel po satu, a gore navedeni formati

(TEXT8X8, TEXTVGA i PALETTED) crtanje na 1 piksela svaka 4 sata.

image