ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Пятница
12 августа
1164021 Топик полностью
VladislavS. (13.01.2022 15:19, просмотров: 215) ответил =AlexD= на А нужно это, что-бы не хранить в полях служебную информацию - адрес, номер бита и пр., а извлекать всё непосредственно из типа, я правильно понимаю?
Совершенно верно. Все свойства объекта (порт, пин, режим) "хранятся" в его типе. Сам объект не будет занимать память, даже если я создам его. И он умеет выполнять действия, присущие этому типу (или объекту). 
// Устанавливаю ногу в единицу через статический метод класса (типа)
PA_1::set();

// Создаю объект типа PA_1;
PA_1 pa1;

// Устанавливаю в ноль через оператор присваивания
pa1 = 0;

//-------------------------------------------------
PA_1::set();
PA_1 pa1;
pa1.clear();
  movs r3, #160
  movs r2, #2 
  lsls r3, r3, #23 
  str r2, [r3, #24]  ; GPIOA->BSRR = 1<<1;
  strh r2, [r3, #26] ; *((volatile uint16_t*)&GPIOA->BSRR)+1) = 1<<1;