[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