| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- (*
- Пример для 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.
|