Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

przerwanie Timer3 w STM32Fxx

rpal 14 Lut 2017 18:39
  • #1 14 Lut 2017 18:39
    rpal
    Poziom 27  

    witam,
    przeniosłem obsługę przerwana ze standardowego miejsca czyli pliku stm32f2xx_it.c do pliku z własnymi procedurami, w tym także z obsługą TIM3_IRQHandler.
    No i program w chwili przejścia do jego wykonania się wykrzacza? Kiedy przywracam stan faktyczny problem znika jednak wolałbym abym miał ją tam gdzie chce. Wygląda na to że podczas linkowania wskazane przeze mnie miejsce jest ignorowane. Czy ktoś ma na to jakiś pomysł?

  • #2 14 Lut 2017 18:49
    tadzik85
    Poziom 38  

    własny plik nie podlega kompilacji? sprawdź.

  • #3 14 Lut 2017 18:52
    rpal
    Poziom 27  

    kompilacji oczywiście podlega bo inne procedury w nim umieszczone są wykonywane. Żadnych błędów podczas kompilacji lub linkowania nie ma, jedna sama procedura przerwania nie chce się wykonywać, podglądam to podczas debugowania w uVision

  • #4 14 Lut 2017 18:54
    tadzik85
    Poziom 38  

    dziwny przypadek raczej nie tu leży problem.

  • #5 14 Lut 2017 18:57
    rpal
    Poziom 27  

    no właśnie, zwłaszcza że kiedy procedura przerwania wraca do pierwotnego pliku problem znika. Przenosiłem wcześniej obsługę przerwania RTC i wszystko jest OK. Sam się dziwię o co chodzi

  • #6 14 Lut 2017 19:53
    Piotrus_999
    Poziom 38  

    A linkuje się?Co to znaczy wykrzacza? Trafia do dh?

    Dodano po 15 [minuty]:

    Ps zostaw w obydwu plikach. Jak linker nie zaplacze to znaczy że się nie linkuje. W swoim pliku mam nadzieję że nie robisz jej static.

  • #7 14 Lut 2017 20:08
    rpal
    Poziom 27  

    żadnych static nie ma. Zrobiłem sobie klasę a pliku *.cpp w którym znajduje się jej obsługa umieściłem przeniesioną procedurę przerwania. Klas ma flagę której stan zmieniany jest w przerwaniu. No i okazało się że przeniesiona procedura przerwania stała się już widoczna. Przyznam że nieco zgłupiałem ale działa:-)

  • #9 14 Lut 2017 20:33
    rpal
    Poziom 27  

    nie zmienia to faktu że "normalnie" nie chce działać

  • #10 14 Lut 2017 20:46
    BlueDraco
    Specjalista - Mikrokontrolery

    Normalnie, to jest z extern 'C'. Ty zrobiłeś nienormalnie, tzn. kazałeś kompilować obsługę jako C++.

  • #11 14 Lut 2017 20:46
    Piotrus_999
    Poziom 38  

    rpal napisał:
    nie zmienia to faktu że "normalnie" nie chce działać
    ? Co znaczy normalne? Jeden plik .c jest C a drugi jest C++. Dwa różne języki

    Tzn Twoja funkcja jest elementem obiektu?

    Trzeba było od razu napisać że C++
    Kolega rajszym Ci napisał.

  Szukaj w 4mln produktów
Przeglądaj produkty