Baile > Nuacht > Ábhar

Tráthúlacht Sampla

Apr 26, 2019

2.2.4 Sampla ama: 480x272 ag 60Hz

Chun taispeáint a nuashonrú ag 60Hz, tá 48000000/60 = 800000 cloig tapa in aghaidh an fhráma.

Nuair a shocraítear an deighilteoir PCLK REG_PCLK go 5 tugtar minicíocht PCLK de 9.6 MHz agus

800000/5 = 160000PCLKs in aghaidh an fhráma.

Maidir le taispeáint 480 x 272, is é an gnáth-thréimhse chothrománach ná 525 cloig, agus is í an tréimhse ingearach

286 líne. Léiríonn an cuardach beag go dtugann méid 548 x 292 tréimhse 160016 cloig,

an-ghar don sprioc. Mar sin le REG_HCYCLE = 548 agus REG_VCYCLE = 292 an taispeántas

Is é minicíocht beagnach 60Hz beagnach. Is féidir na socruithe eile cláir a shocrú go díreach ón

taispeán painéal taispeána.


2.2.5 Seicheamh Tosaigh

Déanann an chuid seo cur síos ar an seicheamh tosaigh sa chás difriúil.

 Seicheamh Tosaigh i rith na tosaithe:

1. Bain úsáid as clog SPI MCU nach mó ná 11MHz

2. “CLKEXT” ordaithe Óstach a sheoladh chuig FT800

3. Send Host command “ACTIVE” chun gur féidir clog a dhéanamh le FT800.

4. Cumraigh cláir uainiúcháin físeáin, seachas REG_PCLK

5. Scríobh an chéad liosta taispeána

6. Scríobh REG_DLSWAP, liosta taispeána babhtálacha FT800 láithreach

7. Cumasaigh cúl-rialú solais le taispeáint

8. Scríobh REG_PCLK, tosaíonn aschur físeáin leis an gcéad liosta taispeána

9. Bain úsáid as clog SPI MCU nach mó ná 30MHz


MCU_SPI_CLK_Freq (<11mhz); úsáid="" clog="" mcu="" spi="" níos="" lú="" ná="">

host_command (CLKEXT); // seol ordú chuig "CLKEXT" chuig FT800

host_command (ACTIVE); // seol ceannas óstach "ACTIVE" go FT800

/ * Cumraigh cláir taispeána - taispeántas do rún WQVGA * /

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);

/ * scríobh an chéad liosta taispeána * /

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

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

wr32 (RAM_DL + 8, IMSCRÚDÚ);

babhtála (87 REG_DLSWAP, DLSWAP_FRAME); // babhtáil an liosta taispeána

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

wr8 (REG_GPIO, 0x080 | Ft_Gpu_Hal_Rd8 (phost, REG_GPIO)); // chumas giotán taispeána

wr8 (REG_PCLK, 5); // tar éis an taispeántais seo a bheith le feiceáil ar an LCD

MCU_SPI_CLK_Freq (<30mhz); úsáid="" clog="" mcu="" spi="" suas="" le="">

Cód Blúire 1 Seicheamh tosaigh



 Seicheamh Tosaigh ó Power Down ag úsáid bioráin PD_N:

1. Tiomáin an biorán PD_N ard

2. Fan ar feadh 20ms ar a laghad

3. Rith “Seicheamh Tosaigh i rith an Tosaithe” ó chéimeanna 1 go 9

 Seicheamh Tosaigh ó Mhód Codlata:

1. Send Host command “ACTIVE” chun gur féidir clog a dhéanamh le FT800

2. Fan ar feadh 20ms ar a laghad

3. “Seicheamh Tosaigh a chur i bhfeidhm le linn Tosaithe” ó chéimeanna 5 go 8

 Seicheamh tosaigh ó mhodh fuireachais:

Cuir na céimeanna go léir atá luaite i “Seicheamh Tosaigh ón Mód Codlata” i bhfeidhm

ach amháin ag fanacht le 20m ar a laghad i gcéim 2.

Tabhair faoi deara: Féach ar bhileog sonraí FT800 le haghaidh faisnéise ar mhodhanna cumhachta. Lean rannóg 2.3 do

bainistíocht fuaime le linn oibríochtaí cumhacht síos agus athshocraithe.


2.3 Sintéiseoir Fuaime

Cód samplach le C8 a imirt ar an bhfónfhón:

wr8 (REG_VOL_SOUND, 0xFF); // an méid a shocrú go huasmhéid

wr16 (REG_SOUND, (0x6C < 8)="" |=""> // C8 nóta MIDI ar sheilfón

wr8 (REG_PLAY, 1); // an fhuaim a imirt

Cód an chnaipe 2 sintéiseoir fuaime seinn C8 ar an bhfónfhón


Cód samplach chun stádas na súgartha fuaime a sheiceáil:

Sound_status = rd8 (REG_PLAY); // Tá 1 dráma ar siúl, tá 0-imirt críochnaithe

Déan sintéiseoir fuaime chóid an chóid 3 seiceáil stádas na fuaime



Cód samplach chun stop a chur le súgradh fuaime:

wr16 (REG_SOUND, 0x0); // chumrú tosta mar fhuaim le himirt

wr8 (REG_PLAY, 1); // súgradh

Sound_status = rd8 (REG_PLAY); // Tá 1 dráma ar siúl, tá 0-imirt críochnaithe

Stopann sintéiseoir fuaime 4 chóid an chóid ag seinm fuaime


Chun fuaim fuaime pop a sheachaint ar athrú athshocraithe nó ar athrú stáit cumhachta, spreag fuaim "balbh",

agus fan go dtí go gcríochnóidh sé (nuair a bhíonn luach i gceist le críochnú an dráma fuaime)

de 0). Leagann sé seo an luach aschuir go dtí 0 leibhéal. Ar an atosú, imríonn an t-inneall fuaime ar ais é

fuaim “neamhchaiteach” chun an t-aschur a thiomáint go leibhéal leathbhealaigh.

Tabhair faoi deara: Féach ar bhileog sonraí FT800 chun tuilleadh eolais a fháil faoi shintéis agus fuaim

athsheinm.


2.4 Athsheinm fuaime

Tacaíonn FT800 le trí chineál fuaime: 4 Bit IMA ADPCM, 8 Bit PCM sínithe, 8 Bit uLaw. Maidir le formáid IMA ADPCM, tabhair faoi deara an t-ordú beart: laistigh de bheart amháin, an chéad sampla

(4 giotán) ó giotán 0 go giotán 3, agus beidh an dara sampla (4 ghiotán) suite as

giotán 4 go giotán 7.

Le haghaidh na sonraí fuaime in FT800 RAM le himirt, éilíonn FT800 an seoladh tosaigh isteach

Beidh REG_PLAYBACK_START cothrom le 64 giotán (8 Bytes) ailínithe. Ina theannta sin, fad na fuaime

Éilítear go mbeidh 64 giotán (8 Bytes) de na sonraí atá sonraithe ag REG_PLAYBACK_LENGTH.

Le foghlaim conas na sonraí fuaime a imirt ar ais, seiceáil an cód samplach thíos:

wr8 (REG_VOL_PB, 0xFF); // cum toirt athsheinm fuaime a chumrú

wr32 (REG_PLAYBACK_START, 0); // cumraigh seoladh tosaigh an mhaoláin fuaime

wr32 (REG_PLAYBACK_LENGTH, 100 * 1024); // cumraigh fad an mhaoláin fuaime

wr16 (REG_PLAYBACK_FREQ, 44100); // chumrú minicíocht na samplála fuaime

wr8 (REG_PLAYBACK_FORMAT, ULAW_SAMPLES); // cumrú an fhormáid fuaime

wr8 (REG_PLAYBACK_LOOP, 0); // cumrú athsheinm uair nó leanúnach

wr8 (REG_PLAYBACK_PLAY, 1); // tús an athsheinm fuaime

Cód Blúire 5 Athsheinm fuaime



AudioPlay_Status = rd8 (REG_PLAYBACK_PLAY); // Tá athsheinm 1-fuaime ar siúl,

Tá athsheinm 0-fuaime críochnaithe

Blúire an Chóid 6 Seiceáil stádas athsheinm fuaime

wr32 (REG_PLAYBACK_LENGTH, 0); // cumraigh an fad athsheinm go dtí 0

wr8 (REG_PLAYBACK_PLAY, 1); // athsheinm fuaime

Cód Blúire 7 Stop an athsheinm fuaime


2.5 gnáthaimh ghrafaice

Déanann an chuid seo cur síos ar ghnéithe grafaicí agus gabhtar roinnt samplaí.

2.5.1 Tús a chur leis

Cruthaíonn an sampla gairid seo scáileán leis an téacs "FTDI" air, le ponc dearg.

image

Is é an cód chun an scáileán a tharraingt ná:

wr32 (RAM_DL + 0, CLEAR (1, 1, 1)); // scáileán soiléir

wr32 (RAM_DL + 4, BEGIN (BITMAPS)); // tús bitmaps líníocht

wr32 (RAM_DL + 8, VERTEX2II (220, 110, 31, 'F')); // ascii F i gcló 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)); // dath a athrú go dearg

wr32 (RAM_DL + 32, POINT_SIZE (320)); // méid pointe socraithe go 20 picteilín isteach

ga

wr32 (RAM_DL + 36, TÚS (POINTÍ)); // túsphointí tarraingthe

wr32 (RAM_DL + 40, VERTEX2II (192, 133, 0, 0)); // pointe dearg

wr32 (RAM_DL + 44, END ());

wr32 (RAM_DL + 48, IMSCRÚDÚ); // taispeáin an íomhá

Cód Blúire 8 Tús áite


Tar éis na horduithe líníochta thuas a luchtú i liosta taispeána RAM, cláraigh

Ní mór REG_DLSWAP a shocrú go 0x02 chun go mbeidh an liosta taispeántais nua gníomhach

ar an gcéad athnuachan eile den fhráma.

Nóta:

 Tosaíonn an liosta taispeána i gcónaí ag seoladh RAM_DL

 An seoladh i gcónaí breisíochtaí de 4 (beart) mar is leithead giotán 32 giotán gach ceann acu.

 Moltar go n-úsáidfí Ordú CLEAR sula ndéanfaí aon líníocht eile

oibriú, chun inneall grafaicí FT800 a chur i stát aitheanta.

 Cuirtear deireadh leis an liosta taispeána i gcónaí leis an gceannas ordaithe

2.5.2 Eitleán a chomhordú

Léiríonn an figiúr thíos an plána comhordaithe grafaicí agus a limistéar infheicthe.

Síníonn an chomhordú X agus Y bailí ó -1024 go 1023 i gcruinneas picteilín, ie, ó

-16384 go 16383 i gcruinneas picteilín 1/16.


image

2.5.3 Patrún líníochta

Is é an patrún ginearálta líníochta ná:

 TÚS le ceann de na cineálacha primitive

 Cuir ceann amháin nó níos mó de na hainmhithe, a shonraíonn suíomh an primitive

an scáileán

 END chun deireadh an primitive a mharcáil

(nóta: I mórán samplaí níl an t-ordú END liostaithe go sainráite)

Is iad na cineálacha bunúsacha a dtacaíonn an t-inneall grafaicí leo:

 BITMAPS - eagar picteilín dronuilleogach, i bhformáidí éagsúla dathanna

 POINTÍ - pointí frith-ailiasacha, tá ga phointe ag 1-256 picteilín

 LÍNTE - línte frith-ailiasacha, le leithead ó 0 go 4095 1 / 16ú aonad picteilín.

(tá leithead ó lár na líne go teorainn)

 LINE_STRIP - línte frith-ailiasacha, ceangailte ceann-le-eireaball

 RECTS - dronuilleoga comhchruinnithe, is féidir cuaire na gcoirnéal a choigeartú

ag úsáid LINE_WIDTH.

 Stiallacha imeall EDGE_STRIP_A / B / L / R

Samplaí


Tarraing pointí le ga éagsúil ó 5 picteilín go 13 phicteilín le dathanna difriúla:

DL (COLOR_RGB (128, 0, 0));

dl (POINT_SIZE (5 * 16));

dl (TÚS (POINTÍ));

dl (VERTEX2F (30 * 16,17 * 16));

DL (COLOR_RGB (0, 128, 0));

dl (POINT_SIZE (8 * 16));

DL (VERTEX2F (90 * 16, 17 * 16));

DL (COLOR_RGB (0, 0, 128));

dl (POINT_SIZE (10 * 16));

dl (VERTEX2F (30 * 16, 51 * 16));

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

dl (POINT_SIZE (13 * 16));

dl (VERTEX2F (90 * 16, 51 * 16));

image

Tugann an t-ordú VERTEX2F suíomh an ionaid chiorcail.

Tarraing línte le méideanna éagsúla ó 2 phicteilín go 6 phicteilín le dathanna difriúla (leithead líne

méid ó lár na líne till teorainn):

DL (COLOR_RGB (128, 0, 0));

dl (LINE_WIDTH (2 * 16));

dl (TÚS (LÍNTE));

dl (VERTEX2F (30 * 16,38 * 16));

DL (VERTEX2F (30 * 16,63 * 16));

DL (COLOR_RGB (0, 128, 0));

dl (LINE_WIDTH (4 * 16));

DL (VERTEX2F (60 * 16,25 * 16));

DL (VERTEX2F (60 * 16,63 * 16));

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

dl (LINE_WIDTH (6 * 16));

dl (VERTEX2F (90 * 16, 13 * 16));

dl (VERTEX2F (90 * 16, 63 * 16));

Tá na horduithe VERTEX2F ina mbeirteanna chun pointe tosaithe agus bailchríoch na líne a shainiú.



Tarraing dronuilleog le méideanna de thoisí 5x25, 10x38 agus 15x50 (úsáidtear méid leithead líne

le haghaidh cuaire cúinne, cuirtear LINE_WIDTH picteilín leis an dá threo sa bhreis ar

toise dronuilleog):

image

DL (COLOR_RGB (128, 0, 0));

dl (LINE_WIDTH (1 * 16));

dl (BEGIN (RECTS));

DL (VERTEX2F (28 * 16,38 * 16));

DL (VERTEX2F (33 * 16,63 * 16));

DL (COLOR_RGB (0, 128, 0));

dl (LINE_WIDTH (5 * 16));

dl (VERTEX2F (50 * 16,25 * 16));

DL (VERTEX2F (60 * 16,63 * 16));

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

dl (LINE_WIDTH (10 * 16));

dl (VERTEX2F (83 * 16, 13 * 16));

dl (VERTEX2F (98 * 16, 63 * 16));

Tá na horduithe VERTEX2F ina mbeirteanna chun na coirnéil ar chlé agus ar bharr na láimhe deise de

an dronuilleog.

image

image

image

image

2.5.4 Liostaí taispeána a scríobh

Tá scríobh na n-iontrálacha ar liostaí taispeána le wr32 () an-íditheach agus bíonn seans maith ann, mar sin a

d'fhéadfaí feidhm a úsáid:

image

image

image

Athraíonn an t-ordú COLOR_RGB an dath líníochta atá ann faoi láthair, a dhathraíonn an bitmap.

Athraíonn ordú COLOR_A an alfa líníochta reatha, ag athrú na trédhearcachta

den líníocht: ciallaíonn alfa de 0 trédhearcach go hiomlán agus tá alfa de 255 go hiomlán

teimhneach. Tugann luach 150 anseo éifeacht atá trédhearcach go páirteach.

image

2.5.7 VERTEX2II agus VERTEX2F

Ní cheadaíonn an t-ordú VERTEX2II thuas a úsáidtear comhordanáidí dearfacha scáileáin. Má tá

tá an bitmap as an scáileán go páirteach, mar shampla le linn scrolla scáileáin, ansin is gá

sonraigh comhordanáidí scáileáin dhiúltacha. Ceadaíonn ordú VERTEX2F diúltach

comhordanáidí. Ceadaíonn sé freisin comhordanáidí codánacha, toisc go sonraíonn sé scáileán (x, y) isteach

aonaid de 1/16 picteilín.

Mar shampla, ag baint úsáide as VERTEX2F le seasamh an bitmap céanna ag an scáileán (-10, -10):

image

image

image

2.5.9 Feidhmíocht

Níl aon mhaolán fráma ag an inneall grafaicí: úsáideann sé cumadóireacht dhinimiciúil chun gach ceann a thógáil

líne taispeána le linn scanadh amach. Mar gheall air seo, tá méid teoranta ama ar fáil do

tarraing gach líne. Braitheann an t-am seo ar na paraiméadair scanadh amach (REG_PCLK agus

REG_HCYCLE) ach níl sé níos lú ná 2048 timthriallta inmheánacha 2048.

Roinnt teorainneacha feidhmíochta:

 Caithfidh fad an liosta taispeána a bheith níos lú ná treoracha 2048, mar gheall go bhfuil an

faigheann inneall grafaicí orduithe liostaí taispeána ceann sa chlog.

 Is é an picteilín feidhmithe atá ag feidhmiú ar ghrafaic ná 4 phicteilín in aghaidh an chloig, d'aon cheann

líne le horduithe taispeána 2048 ní mór an fheidhmíocht picteilín iomlán a tharraingítear a bheith

níos lú ná 8192.

 I gcás roinnt formáidí bitmap, is é an ráta tarraingthe ná 1 picteilín in aghaidh an chloig. Is iad seo

TEXT8X8, TEXTVGA agus Pléite.

 I gcás picteilíni scagtha dé-aille, laghdaítear an ráta líníochta go ¼ picteilín in aghaidh an chloig.

Tarraingíonn an chuid is mó de na formáidí bitmap ag 1 phicteilín in aghaidh an chloig, agus na formáidí thuas

(TEXT8X8, TEXTVGA agus PALETTED) tarraing ag 1 phicteilín gach 4 chloig.

image