[elektro] STM32f4 interrupt : volatile tombok
Pal Lukacs
ekegep at yahoo.com
Sat Dec 7 20:19:41 CET 2013
Sziasztok !
Latom tobben hozzaszoltok, leirom mi a pontos problemam.
1.5k koruli kettos puffert hasznalok. Mindegyiknek van WRT/RDY allapot flagje (enum). Tehat ket puffer az ADC felol, ketto puffer a DAC felol.
Az ADC IT vezerli az adc pufferek allapotait es a szures allapotot a mainnek (hogy az adott puffer megvolt mar szurve vagy nem), a DAC sajat puffere allapotait vezerli.
Ezek mind volatile-ok, mivel IT-ben vannak babralva.
A DAC hamarabb van inditva (i2s enable) egy kicsivel mint az ADC (i2s) , hogy ne fussanak egymasra, esetleg ne legyen adatvesztes.
A prioritasi csoportjuk 0, elmeletileg nem futhatnak egymasra.
A mainben a ket puffernek (adc es dac) ket blokk van, es a flagek alapjan szuri az adott puffer tartalmat. A szuro inicializalasanal hasznalt state buffer mindket main tombben azonos, tehat nem itt romlik el a dolog.
Tobb lepes is van, mint pl decimalas, szures, aztan interpolalas (itt a szabalyok a tombok meretere nezve, koefficiensek szamara nezve betartva)
Es az eredmeny kattogos (egyertelmuen processzor altal elrontott) hang.
1. csatorna majdnem rendben, gyenge kattogas azert raulve.
2. ugyanaz mint az elsonel, viszont az elso csatorna is bekattog, ( az alapjel itt nincs jelen.)
A stacket megnoveltem, mivel IT eseten eleg sok midnent el kell mentenie amikor felbeszakit egy szurest.
Kb 500x atneztem a kodot. Szerintem elront valamit, de nem tudom hol.
Mennyit ronthat a szamitasi teljesitmenyen az hogy van nehany volatile tomb es flag az IT-ben ?
Udv.
Szabi
On Saturday, December 7, 2013 7:41 PM, Arnold Fuzesi <arnold.fuzesi.lista at gmail.com> wrote:
Lehet cserelgetni a buffer kezdocimet is, ugy gyors. Csak a kettos buffereles memoriazabalo, cirkular buffer jobb kihasznalast ad.
Arnold
Sent from iPhone
> On 2013.12.07., at 18:12, Móczik Gábor <pm_levlista at progzmaster.hu> wrote:
>
> 2013.12.07. 17:18 keltezéssel, Pal Lukacs írta:
>> Koszi !
>>
>> A sok pointerezes, cimzes szamolas helyett itt is lehet hasznalni kettos puffert .
>
> Csak nem érdemes. Adatot másolgatni feleslegesen egyik helyről a másikra
> óriási erőforrás pocsékolás.
>
> -----------------------------------------
> elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]
More information about the Elektro
mailing list