/
sunnf
/
morse_code
Обзор
Документация
Войти
/
sunnf
/
morse_code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/morz.adb
181 строка
4 KB
sunfmoon
Initial commit: added Morse code simulator for STM32F411
21 май 2026, 13:20
21 май 2026, 13:20
dd58322
Код
Авторство
О чём код?
with stm32_SVD.RCC; use stm32_SVD.RCC; with stm32_SVD.GPIO; use stm32_SVD.GPIO; package body Morz is tw: constant integer := 16#80000#; i : Integer := tw; procedure wl is begin loop exit when I <= 1; i := i - 1; end loop; i := tw; end wl; Procedure Init_Morz is begin -- Internal High Speed clock enable RCC_Periph.CR.HSION := True; loop exit when RCC_Periph.CR.HSIRDY; end loop; -- APB1 peripheral clock enable register (RCC_APB1ENR) -- I/O port C clock enable RCC_Periph.AHB1ENR.GPIOCEN := True; GPIOC_Periph.MODER.Arr(13) := 2#01#; -- Port C.13 mode bits GPIOC_Periph.OTYPER.OT.Arr(13) := False; GPIOC_Periph.OSPEEDR.Arr(13) := 2#00#; GPIOC_Periph.PUPDR.Arr(13) := PUPDR_Element(2#10#); -- Port C.13 configuration bits GPIOC_Periph.ODR.ODR.Arr(13) := True; --OFF end; procedure sim_A is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_A; procedure sim_H is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_H; procedure sim_F is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_F; procedure sim_J is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_J; procedure sim_V is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_V; procedure sim_Q is begin GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (.) wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; GPIOC_Periph.ODR.ODR.Arr(13) := False; -- ON (-) wl; wl; wl; GPIOC_Periph.ODR.ODR.Arr(13) := True; -- OFF wl; wl; wl; wl; end sim_Q; end Morz;