[elektro] STM32f4 interrupt : volatile tombok

hg12345 hg12345 at freemail.hu
Sun Dec 8 10:04:19 CET 2013


Hi
sokkal jobb a ping-pong buffer 
1, DMA-val is kezelhető,
2, 1.5K nem memória foglalás 
3, a szűrő algoritmus gyári megírt és csak a pointert kell átadni :-)

De szerintem célszerű lenne 3 fix méretű tömböt lefoglalni a heap-en vagy fixeni, és ezeket a tömböket cirkulárisan használni... Gondolom a tömb mérete határozza meg a hang késleltetését... A tömb méretét akkorára kell választani, hogy a szűrés tudjon vele végezni míg az következő szűrendő mennyiség  beérkezik. (ez a szűk kapacitás, de ha növeli a felhasznált tömbök számát, ez ezen nem tud segíteni, csak a verseny helyzet esetén később fog adatot veszíteni, a folyamatos késlekedés növekedés mellett)

egyiket tölti a DMA
másokban számol a szürő
harmadikat kiküldi a DMA

"Móczik Gábor" <pm_levlista at progzmaster.hu> írta:
>2013.12.07. 18:41 keltezéssel, Arnold Fuzesi írta:
>> Lehet cserelgetni a buffer kezdocimet is, ugy gyors. Csak a kettos buffereles memoriazabalo, cirkular buffer jobb kihasznalast ad.
>
>Na jó, de jelen esetben mit érsz el buffer cím cserélgetéssel?
>
>Ugyanaz, mintha circular lenne, csak még egy plusz pointert cserélgetsz 
>az rd/wr-en kívül, valamint jobban "kvantált" az anyag, csak diszkrét 
>buffernyi darabokban férsz hozzá, a circ. bufferben meg tetszőleges 
>hosszban, folyamatosan akár.
>
>Doublebuffer olyan esetben lehet jó, amikor nincs annyira ráhatás a 
>kiolvasó folyamatra, pl. képernyőn megjelenítés. Ha nem a video drivert 
>írod, hanem valami magasabb szintű rétegben vagy, nem tudod mikor fog 
>kelleni a kijelzőnek egy adott sornyi pixel, jobb ha egyben odaadod az 
>egész képtartalmat, aztán majd kiírja amikor akarja, te meg a háttérben 
>összeállítod a következő képet.
>
>-----------------------------------------
>          elektro[-flame|-etc]
>



More information about the Elektro mailing list