/
Evgenij63
/
Proj_a3
Обзор
Документация
Войти
/
Evgenij63
/
Proj_a3
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
maincpp.cpp
67 строк
2 KB
Evgenij63
Добавление файлов
17 дек 2025, 08:14
17 дек 2025, 08:14
8dec076
Код
Авторство
О чём код?
#include "candef_code.h" #include "maincpp.hpp" // 1. Классы #include "logical_def.h"//// 2. Макросы #include "logical_def_h_mcollection.h"// 3. Объекты (используют LOG) #ifdef __cplusplus extern "C" { #endif void TAsu23:: f_out(GPIO_TypeDef *addr, uint8_t bit, unsigned char approval, bool st) { uint16_t state = st; uint32_t ps = 1 << (bit & 0x0F); GPIO_TypeDef* port = addr; if (((uint32_t)addr & 0xFFFF0000) == AHB2PERIPH_BASE) { // port stm32g473 if (((addr == GPIOA) && (bit == 6)) || // LED9 ((addr == GPIOB) && (bit == 4)) || // LED3 ((addr == GPIOB) && (bit == 10)) || // LED10 ((addr == GPIOC) && (bit == 13)) || // LED6 ((addr == GPIOC) && (bit == 14)) || // LED7 ((addr == GPIOC) && (bit == 15)) || // LED5 ((addr == GPIOD) && (bit == 5)) || // LED1 ((addr == GPIOD) && (bit == 6)) || // LED2 ((addr == GPIOD) && (bit == 7)) || // LED4 ((addr == GPIOF) && (bit == 10))) // LED8 { if (state && approval) (port->BSRR) |= (1 << (bit+16)); // LED on else (port->BSRR) |= (1 << bit); // LED off } else { if (state && approval) (port->BSRR) |= (1 << bit); // set bit else (port->BSRR) |= (1 << (bit+16)); // reset bit } } else { // memory ps &= 0xFF; if ((state & 0xFFFF) && approval) *((uint8_t*)addr) |= ps; else *((uint8_t*)addr) &= ~ps; } } void TBoolLogfun :: f_and(bool a1, bool a2) { NET = a1 and a2; } void cpp_link (void) { #include "logical_usermain.h" } #ifdef __cplusplus } #endif