Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM8] [STM32] Różnica pomiedzy przerwaniem update i overflow

qazwsx234 13 Sty 2018 18:04 240 4
  • #1 13 Sty 2018 18:04
    qazwsx234
    Poziom 6  

    Witam, chciałbym żeby ktoś mi wytłumaczył jaka jest różnica pomiędzy przerwaniami update i overflow.

    Przykładowo, jest 16bitowy Timer2, jego maksymalna wartość to 65535.
    Inicjalizuje go następująco:
    TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999);
    Częstotliwość procesora to założmy F_CPU, a okres jak widać 999+1, prescaler = 1.

    I teraz chciałbym potwierdzić czy dobrze rozumiem:
    1. Przerwanie overflow nastąpi kiedy timer doliczy do swojej maksymalnej wartości, czyli 65535, a więc po czasie T = 1/f = 1/(F_CPU/Prescaler).

    2. Przerwanie update nastąpi po każdym okresie, czyli po tym jak timer doliczy do wartośći 999, czyli po T = 1/(F_CPU/Prescaler/okres_licznika).

    Czyli do czasu aż wystąpi pierwsze przerwanie Overflow, nastąpi około 65 przerwań Update (65535/999 = 65,6).

    Proszę powiedzieć czy dobrze rozumuję.

    0 4
  • #3 13 Sty 2018 19:11
    qazwsx234
    Poziom 6  

    Czyli z tego wynika że, timer zainicjalizowany w sposób:
    TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999);
    Będzie liczył od 0 do 999, jak doliczy do końca (999) to zostanie wygenerowane przerwanie update czyli overflow ?

    Czyli przerwanie będzie generowane co T = 1/(F_CPU/Prescaler/(Period+1)), przy zołożeniu że licznik liczy w górę od 0 do 999?

    0
  • #5 13 Sty 2018 19:31
    qazwsx234
    Poziom 6  

    Ok, dzięki za pomoc.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo