RE: Programování STM32 - přerušení

cizek.milan na seznam.cz cizek.milan na seznam.cz
Čtvrtek Říjen 3 03:11:55 CEST 2019


Ahoj, rozchodil jsem i tlačítko přes přerušení… nicméně nechápu jak to funguje a prosím o objasnění.

Jde o tento návod: https://www.youtube.com/watch?v=UtkszckecV8 <https://www.youtube.com/watch?v=UtkszckecV8&t=193s> &t=193s

 

Na pinu s tlačítkem jsem v MX zapl přerušení, přegeneroval kód…

Měl jsem za to, že budu muset editovat kód v souboru _it.c, třeba ve funkci EXTI0_IRQHandler nebo v HAL_GPIO_EXTI_IRQHandler.

 

Ale zkusil jsem jako v návodu pouze dopsat tu funkci HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) do main.c. A dát si do ní zapnutí ledky a hle, funguje to. Nechápu ale jak.

Přijde mi, že tato funkce nemůže mít žádnou vazbu na zbytek kódu… kdyby to bylo v Cpp, řekl bych, že je to nějaké override/přepsání někde existující funkce v parentovi, ale tady nějak nechápu.

Jak je to tedy provázané? V této funkci se mi sejdou všechna pozapínaná přerušení bez ohledu na pin (PA/PB…)? Tj. stačí jen udělat podmínky podle pinů? Předpokládám, že už není třeba řešit nějaké čištění flagů přerušení (to si děje v IRQHandleru - __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);)

 

Díky

M.

 

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20191003/e1588f4d/attachment.html>


Další informace o konferenci Hw-list