16+
Суббота
23 февраля
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

ARM-контроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
йцукен  (08.02.2019 15:45) , в ответ на Вот насчет читаемости мне совсем не очевидно. Хотелось бы пример замены для этого конкретного случая и пример применения в возможном контексте юзеркода. Не настаиваю, но очень хотелось бы убедиться, чиста для собственного развития. автор: Codavr
Чиста для развития. 
#define BFI(v,bf,pos,width)	(v) = (v) & ~(((1<<(width))-1)<<(pos)) | ((bf)<<(pos))

#define PIN_MODE_IN		0UL
#define PIN_MODE_OUT		1UL
#define PIN_MODE_AF		2UL
#define PIN_MODE_ANALOG		3UL

enum pin_mode { MODE_IN = 0, MODE_OUT, MODE_AF, MODE_ANALOG };

void set_pin_mode_int( GPIO_TypeDef * port, int bit, int mode )
{
	BFI( port->MODER, mode, 2*bit, 2 );
}

void set_pin_mode_enum( GPIO_TypeDef * port, int bit, enum pin_mode mode )
{
	BFI( port->MODER, mode, 2*bit, 2 );
}

void foo()
{
	set_pin_mode_int( GPIOA, 0, -666 );	// absurd, but compiler does not mind
	set_pin_mode_enum( GPIOB, 1, 1 );	// compiler error: incompatible argument type
	set_pin_mode_enum( GPIOC, 2, MODE_OUT );
}
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX