[elektro] STM32f4 interrupt : volatile tombok

Pal Lukacs ekegep at yahoo.com
Sat Dec 7 17:18:36 CET 2013


Koszi !

A sok pointerezes, cimzes szamolas helyett itt is lehet hasznalni kettos puffert .


Elso korben kerulom a DMA-t, de elobb utobb az lesz belole,..



Szabi




On Saturday, December 7, 2013 6:03 PM, Fuzesi Arnold <arnold.fuzesi.lista at gmail.com> wrote:
 
KB ennyi:

main(){
    for(;;){
        dsp_filter();
        if(i2s_input_fifo_felig_van_mondjuk) i2s_fifo_to_main_input_buffer();
        if(i2s_output_fifo_felig_van_mondjuk) main_output_buffer_to_i2s_fifo();

    }
}

dsp_filter egy allapotgep belul amelyik miutan kilep magabol es visszalep a 
foprogram bele ott folytatja ahol abbahagyta. Azt, hogy mennyi ido mulva lepjen 
ki legrosszabb esetben az audio sample rate hatarozza meg, biztonsaggal legyen 
ideje kódnak az I2S fifo-kat feltolteni, kiolvasni.

/Erre egy DMA-t is lehet hasznalni, es akkor vegkepp csodalatos a helyzet, 
gyakorlatilag csak a dsp_filter() fut az idő 99.99%-ban. /

a
main_output_buffer
main_intput_buffer

tömböket pedig cirkularisan egy rd, wr pointer cimzi. Egyik ir bele, masik olvas 
belole, lehetoseg szerint egyik sem tulfutva a masikon.
(Ezt le lehet programozni nagyon gyorsra ugyesen egy kis agyalas utan. )


A.


On 2013.12.07. 16:17, Pal Lukacs wrote:
> Fiforol nem tudok semmit, annyira nem mentem bele az adatlapba, IT-re irtam,
> mas is csinalt hasonlot es birta. A volatile dologra lettem volna kivancsi.
>
> Nekem nem volt szivas az i2s pll-el, keil alatt. Viszont GCC alatt elront
> valamit amikor szamolja ki a pll configot, (most nincs keznel az a gep, nem
> tudom leirni hogy melyik gcc es milyen parameterekkel volt forditva.
> egyebkent a gcc kod is mukodott csak az i2s frekvenciaja sehogy sem akart
> beallni arra amire kellett volna, ugyanaz a kod keil alatt rendesen
> mukodott).
>
> Amugy CMSIS-t hasznalok, es eddig Keillel minden rendesen mukodott .
>
> Az elobbi modszert amit IT helyett ajanlottal, nehany szoban bovebben
> kifejtened ?
>
>
> Udv. Szabi
>
>
>
>
>
>
> On Saturday, December 7, 2013 3:16 PM, Arnold Fuzesi
> <arnold.fuzesi.lista at gmail.com> wrote:
>
> Mas: audio pll-je jol mukodik az stm-nek, hasznalod? Epp ilyesmit keresek, 8
> 44.1 48kHz samplerate kellene i2s -hez futasidoben varialhato modon...
>
> Ugy altalaban ajanlanad a sorozatot amugy? Van vele szivas, vagy semmi extra,
> mukodik ahogy irva vagyon?!
>
> Thx, Arnold Sent from iPhone
>
>
>> On 2013.12.07., at 14:05, Arnold Fuzesi <arnold.fuzesi.lista at gmail.com>
>> wrote:
>>
>> I2S nek van fifoja gondolom.
>>
>> Ezesetben IT sem igazan kell, jol megirt main (=kooperativ multitaszk)
>> siman lekezeli a dolgot, es ennel gyorsabb megoldas nem lesz.... IT-nek
>> hatalmas az overheadje, nalam is most epp audio van teriteken, es IT szoba
>> sem johet, kooperativ az egesz kod, es meglepoen gyors az egesz.
>>
>> Ha csak ennyit csinal a proc, en nem IT-znek...
>>
>> Arnold Sent from iPhone
>>
>>> On 2013.12.07., at 12:57, Pal Lukacs <ekegep at yahoo.com> wrote:
>>>
>>> Sziasztok !
>>>
>>> I2S modulokat hasznalok adat behozasra es kiirasra (ADC/DAC). Ezek
>>> megfelelo IT-jei toltenek fel es olvasnak volatile tomboket. Kozben a
>>> main szuressel foglalkozik, amit az IT-k meg kell szakitsanak. A szures
>>> is ezekbol a volatile tombokbol olvas/ir (kettos pufferek vannak)
>>>
>>> A kerdesem az lenne, hogy jo megoldas ez igy, vagy inkabb a tombok
>>> irasat/olvasasat masik fuggvenyben kellene elvegezni es azt hivni az
>>> IT-kben? Ha jol tudom igy mar nem muszaj volatile-nak lennie a
>>> tomboknek.
>>>
>>> (Hetvegen nem vagyok compiler kozeleben, igy listan probalok jovo hetre
>>> okosabba valni.)
>>>
>>>
>>> Koszonettel Szabi -----------------------------------------
>>> elektro[-flame|-etc]
>
> ----------------------------------------- elektro[-flame|-etc]
> ----------------------------------------- elektro[-flame|-etc]
>

-----------------------------------------
          elektro[-flame|-etc]


More information about the Elektro mailing list