STM32: улучшена обработка прерываний

This commit is contained in:
AntKrotov committed 2020-01-26 22:43:15 +03:00
1 parent 42ec813269
commit a464176184
7 files changed
+42 -47

No files matched your search

+2 -2
View File
@@ -76,9 +76,9 @@ VAR
(* обработчик прерываний *)
PROCEDURE handler (ivoffs: INTEGER);
PROCEDURE handler (iv: INTEGER);
BEGIN
IF ivoffs = 058H THEN (* прерывание от EXTI0 *)
IF iv = 22 THEN (* прерывание от EXTI0 *)
state := (state + 1) MOD 4;
(* изменить состояние светодиодов *)
CASE state OF
+2 -2
View File
@@ -53,9 +53,9 @@ VAR
(* обработчик прерываний *)
PROCEDURE handler (ivoffs: INTEGER);
PROCEDURE handler (iv: INTEGER);
BEGIN
IF ivoffs = 3CH THEN (* прерывание от System tick timer *)
IF iv = 15 THEN (* прерывание от System tick timer *)
state := ~state;
(* включить или выключить светодиоды *)
SYSTEM.PUT(GPIOBBSRR, {Blue + 16 * ORD(state)});
+3 -3
View File
@@ -88,14 +88,14 @@ VAR
(* обработчик прерываний *)
PROCEDURE handler (ivoffs: INTEGER);
PROCEDURE handler (iv: INTEGER);
BEGIN
IF ivoffs = 0ECH THEN (* прерывание от TIM6 *)
IF iv = 59 THEN (* прерывание от TIM6 *)
state1 := ~state1;
(* включить или выключить синий светодиод *)
SYSTEM.PUT(GPIOBBSRR, {BLUELED + 16 * ORD(state1)});
SYSTEM.PUT(TIM6_SR, 0) (* сбросить флаг прерывания *)
ELSIF ivoffs = 0F0H THEN (* прерывание от TIM7 *)
ELSIF iv = 60 THEN (* прерывание от TIM7 *)
state2 := ~state2;
(* включить или выключить зеленый светодиод *)
SYSTEM.PUT(GPIOBBSRR, {GREENLED + 16 * ORD(state2)});