logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[STM32F4] [STM32F4][cpp] - Timer TIM2 nie wywołuje przerwania, brak reakcji na handler

akcelero 08 Sty 2015 00:46 792 5
REKLAMA
  • #1 14305089
    akcelero
    Poziom 2  
    Posty: 3
    Witam, od paru dni mam przyjemność kodzić STM32F4 discovery, jednak mam problem z ustawieniem właściwie tim2/3.
    Miałem już do czynienia z AVRami, napisałem kilka małych programów / projektów.

    a oto co udało mi się posklejać z internetu:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    co więcej, bez linijek zaznaczonych przez komentarz z gwiazdką kod nie przechodzi do nieskończonej pętli
    Program powinien zaraz po pierwszym cyklu timera zapalić diodę.
    Zapewne da się to inaczej zrobić, optymalniej, ale chciałbym najpierw zająć się algorytmem w takiej postaci.

    Z góry dziękuję za wszelkie poprawienia mnie :)
  • REKLAMA
  • Pomocny post
    #2 14305331
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    .....


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    od tego jest CMSIS i jest całkowicie źle.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nigdy na końcu przerwań. Unikałbym operacji read-modify przy zerowaniu flag.

    A to, że program niby nie dociera do pętli while bez tych linii to jakaś bzdura.
    Co najwyżej wchodzisz w jakiś fault handler.


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Źle
  • REKLAMA
  • Pomocny post
    #3 14305596
    grko
    Poziom 33  
    Posty: 1386
    Pomógł: 247
    Ocena: 141
    Jeżeli obsługa przerwania jest w pliku *.cpp to jeszcze trzeba dodać:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 14306489
    akcelero
    Poziom 2  
    Posty: 3
    Oki, zatem jeżeli dobrze rozumiem wszystkie uwagi, to kod powinien mieć taką postać:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Układ dochodzi do pętli nieskończonej, lecz nie ma żadnego wywołania handlera.
  • REKLAMA
  • Pomocny post
    #5 14306509
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Tym timera nie włączysz.
  • #6 14307170
    akcelero
    Poziom 2  
    Posty: 3
    Rozumiem, dziękuję za każdą odpowiedź, zamieszczam kod dla potomnych, temat do zamknięcia : )
    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA