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
f46689bef1
commit
e67640d775
2 files changed
+61
No files matched your search
@@ -0,0 +1,59 @@
|
||||
(*
|
||||
|
||||
Пример для STM32L152C-DISCO
|
||||
|
||||
В зависимости от значения константы LED,
|
||||
мигает синий или зеленый светодиод.
|
||||
|
||||
*)
|
||||
|
||||
MODULE Blink;
|
||||
|
||||
IMPORT SYSTEM;
|
||||
|
||||
|
||||
CONST
|
||||
|
||||
GPIOB = 40020400H;
|
||||
GPIOB_MODER = GPIOB;
|
||||
GPIOB_BSRR = GPIOB + 18H;
|
||||
|
||||
RCC = 40023800H;
|
||||
RCC_AHBENR = RCC + 1CH;
|
||||
|
||||
Blue = 6; (* PB6 *)
|
||||
Green = 7; (* PB7 *)
|
||||
|
||||
LED = Blue;
|
||||
|
||||
VAR
|
||||
|
||||
x: SET;
|
||||
state: BOOLEAN;
|
||||
|
||||
|
||||
PROCEDURE Delay (x: INTEGER);
|
||||
BEGIN
|
||||
REPEAT
|
||||
DEC(x)
|
||||
UNTIL x = 0
|
||||
END Delay;
|
||||
|
||||
|
||||
BEGIN
|
||||
(* подключить GPIOB *)
|
||||
SYSTEM.GET(RCC_AHBENR, x);
|
||||
SYSTEM.PUT(RCC_AHBENR, x + {1});
|
||||
|
||||
(* настроить PB6 или PB7 на выход *)
|
||||
SYSTEM.GET(GPIOB_MODER, x);
|
||||
SYSTEM.PUT(GPIOB_MODER, x - {LED * 2 - 1} + {LED * 2});
|
||||
|
||||
state := FALSE;
|
||||
REPEAT
|
||||
(* включить или выключить светодиод *)
|
||||
SYSTEM.PUT(GPIOB_BSRR, {LED + 16 * ORD(state)});
|
||||
state := ~state;
|
||||
Delay(200000)
|
||||
UNTIL FALSE
|
||||
END Blink.
|
||||
Reference in new issue
Block a user