[elektro] Cortex M4 IT

Bali Zoltan eltexto at freemail.hu
Fri Jun 26 16:02:43 CEST 2015


Szóval vissza az alaptételhez, olvasd el a manuált!

A Cortex M4 programming manuálból rémlett
a pending interrupt. Most elolvastam.
Hát, itt nem működik az hogy csak a IT flageket
töröljük. Lehet függüben levő IT is, ezek
törlésére van egy NVIC regiszter,
"Interrupt clear-pending registers (NVIC_ICPRx) "
ezt is törölnöm kellett volna, a flag nem elég,
attó még az IT le fog futni látszólag flagek nélkül
(engedélyezés előtt töröltük őket).
Különben, nem szerencsés ahogy használtam a
tiltást, mert van shared IT vektor is pl.
"TIM6_DAC1_IRQHandler(void)"
és igy kilövi az ember a másik periféria mexakítást is.

A levelek megint késnek...

Üdv.  Zoli

2015.06.26. 13:40 keltezéssel, Bali Zoltan írta:
>     //NVIC_EnableIRQ(TIM3_IRQn);
>     U_TIM3->DIER.CC3IE  = 1;
>     U_TIM3->DIER.UIE    = 1;
>
> Értelemszerűen a tiltást is így.
>
>
> Ha így csinálom akkor jó. Ezek szerint, a
> NVIC_EnableIRQ(TIM3_IRQn) és társait
> csak a program Init-ben és a DeInit-ben célszerű
> csak használni.
>
> Üdv.  Zoli
>
> 2015.06.26. 13:04 keltezéssel, elight írta:
>> Szia
>>
>> ezt így pontosan nem tudom.. de megeshet.
>>
>> Nekem annyi maradt meg az ilyen esetekkel kapcsolatban,
>>
>> hogy ha letiltasz egy IT-t attól még a flegje bebillenhet..
>> Ez adja a pollingos kezelés lehetőségét..
>> Tehát mielőtt engedélyezed ismét ,
>> előtte neked kell törölni (kezelni)  a fleget.
>>
>> Nekem most éppen egy másik érdekes IT esetem van
>> ezt nyomozom éppen...
>> A perifériának különféle szekvenciákat kell kiadni..
>> és ez az adatátvitel generált  IT-vel  vezérli az adatokat.
>> A státusz olvasásával  lehet ezt a hw. periféria
>> IT jelett visszaállítani alaphelyzetbe..
>> Na már mos, ha beállítom az adás szekvenciát ,
>> és indítom az adás paranccsal ,
>> akkor jól működik... ( ez ARM -ban )
>> de ha ugyanezeket elkövetem ( PIC-ben )
>> akkor ,  mikor engedélyezem az adást ,a perifériában
>>     azonnal IT-t okoz.
>> És emiatt nem záródik le teljesen az előtte a küldött parancs.
>> De mivel IT-ben van már, a szekvencia sem lesz teljes..
>> Egy kis kavar...
>> Vakargatom is a fejem..
>> Szerencse hogy  az  ARM-ban van már  működő rendszer ,
>> és azt is méregethetem...
>>
>> Üdv István
>>
>>
>> 2015-06-26 12:50 keltezéssel, Bali Zoltan írta:
>>> Hali!
>>>
>>> Az normális működés, hogy a TIM3-on
>>> van egy dual edge capture és amikor
>>> a felfutó élben letiltom az IT-t így:
>>> NVIC_DisableIRQ(TIM3_IRQn);,
>>> ezek után még beérkezik egy lefutó él,
>>> de erre már hatástalan. Eddig oké, de amikor
>>> később kiadom az engedélyezést(előtte törlöm a
>>> lehetséges IT flageket) NVIC_EnableIRQ(TIM3_IRQn);
>>> generál egy "fantom" IT-t? Törésponton ilyenkor nincs
>>> engedélyezett IT flag bebillenve, de arra gondolok, hogy az a lefutó
>>> él még valahogy bent ragad a pipeline-ba. Viszont flag nincs hozzá.
>>> Ez bug vagy igy kell működnie? Vagy én tudok(követtem el)
>>> valamit rosszul? Furcsa. Most majd átírom TIM  regiszteres
>>> xxxIE kezelésre  a tiltást engedélyezést.
>>>
>>> Köszi
>>>
>>> Üdv.  Zoli
>>>
>>> -----------------------------------------
>>>              elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>             elektro[-flame|-etc]
>>
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>
>



More information about the Elektro mailing list