encoder

Josef Štengl ok1ced na nagano.cz
Pondělí Květen 15 23:38:48 CEST 2017


Sice neznám periférii, ale příznaky (tedy pokud IF znamená interrupt flag) se nastavují vždy při dané události, aby se 
dala zachytit. Pak se povoluje jestli se má pro tu událost vyvolat přerušení (jiný flag většinou v jiném registru).

Nemůže to tak být i v tomto případě?



Dne 15.5.2017 v 19:54 Fanda napsal(a):
> Tak jsem to zkusil upravit na:
>
> void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
> {
>  ITOC_TIM->SR = (uint16_t)~TIM_FLAG_Update;
>  pokus2 = ITOC_TIM->SR;
>    pokus1++;
> }
>
> a je to stejné. Ještě mne zaráží to, že se nastavují příznaky CC4IF a CC3IF
> i když nejsou povolené. Pokus2 se po vymazani UIF vypisuje s hodnotou 0x0018.
> HUDA
>
>
>
> ------ Původní zpráva ------
> Od: "Jan Waclawek" <konfera na efton.sk>
> Komu: "HW-news" <hw-list na list.hw.cz>
> Odesláno: 15.5.2017 19:01:53
> Předmět: Re: encoder
>
>> Aha, a este jedna vec, nepouzivajte RMW na nulovanie flagov v TIM_SR, ale
>> priamy zapis, t.j.
>>
>> ITOC_TIM->SR = (uint16_t)~(pokus2);
>>
>>
>> Pozrite do RM - tie bity su typu rc_w0 a to nie je nahoda. Kym pouzivate
>> len jeden flag, je to sumafuk; ale ked ich budete pouzivat viac, tak takto
>> si mozete nechtiac vynulovat taky, ktory hardware prave nastavil a
>> software ho este neprecital.
>>
>> wek
>>
>>
>>
>> ----- Original Message ---------------
>>>> jen přeru±ení proběhne vµdycky několikrát
>>>
>>>   ITOC_TIM->SR &= (uint16_t)~(pokus2);
>>>
>>> dajte na zaciatok ISR.
>>>
>>> Dovodom je oneskorenie signalu z timera do NVIC.
>>>
>>> wek
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list