mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
STM32: улучшена обработка прерываний
This commit is contained in:
1 parent
42ec813269
commit
a464176184
7 files changed
+42
-47
No files matched your search
@@ -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
|
||||
|
||||
@@ -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)});
|
||||
|
||||
@@ -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)});
|
||||
|
||||
Reference in new issue
Block a user