ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
1293498 Топик полностью
symbions (19.03.2023 10:23, просмотров: 177) ответил Codavr на Захотелось представления данных как в виде байтов, так и в виде битов. Имеем 8-битную систему. Нарисовал вот такое.
Битовые поля по стандарту упаковываются группами в 16 бит (или в группу равную int - тут я забыл, у меня было это одинаково) Вот как у меня 
union{
	struct { //
		unsigned short ErrorTIME	:1;	///< \brief 0й бит	1- (TRUE)- Ошибка при опросе ИМС времени
		unsigned short PUSTO		:1;	///< \brief 1й бит	1- (TRUE)- Ошибки в таймере нет
		unsigned short ErrorULIC	:1;	///< \brief 2й бит	1- (TRUE)- Ошибка при опросе уличного датчика темп.
		unsigned short ErrorDOP		:1;	///< \brief 3й бит	1- (TRUE)- Ошибка при опросе дополнительного датчика темп.		
		unsigned short ErrorTATM		:1;	///< \brief 4й бит	1- (TRUE)- Ошибка при опросе дополнительного датчика темп.				
		unsigned short ErrorPUSTO	:3;	///< \brief й бит	1- (TRUE)- 
		
		unsigned short RedyTIME		:1;	///< \brief 0й бит	1- (TRUE)- Готовы данные с ИМС времени
		unsigned short TimerOn		:1;	///< \brief 1й бит	1- (TRUE)- Таймер включон
		unsigned short RedyULIC		:1;	///< \brief 2й бит	1- (TRUE)- Готовы данные с уличного датчика темп.
		unsigned short RedyDOP		:1;	///< \brief 3й бит	1- (TRUE)- Готовы данные с дополнительного датчика темп.				
		unsigned short RedyTATM		:1;	///< \brief 4й бит	1- (TRUE)- Готовы данные с дополнительного датчика темп.						
		unsigned short RedyPUSTO	:3;	///< \brief й бит	1- (TRUE)- 	1- (TRUE)- 
	};
	struct {
		unsigned char Error;
		unsigned char Redy;
	};
	unsigned short All;
}	TDatchikiFlag;

ErrorPUSTO и RedyPUSTO - это не используемые биты, причом RedyPUSTO можно было не писать :)