| Ваш IP: 54.158.248.112 | Online(22) - гости: 14, боты: 8 | Загрузка сервера: 2.82 ::::::::::::

Функции highByte() и lowByte() (Arduino)

Функции highByte() и lowByte() позволяют извлекать старший и младший байт из числа int.

Если мы объявим переменную как int, ее значение будет храниться в двух байтах.

Функция lowByte() даст нам значение младшего байта, тогда как значение highByte() — старшего байта.

Пример:

void setup(){
  Serial.begin(9600);

  long x = 10000; // если число > 255 разбиваем на 2 байта (макс. 65536)
  byte hi = highByte(x); // старший байт
  byte low = lowByte(x); // младший байт

  Serial.print(hi);
  Serial.print(" ");
  Serial.print(low);

  int y = (hi<<8)+low; // собираем число из 2-х байтов
  // y = hi *256 + low 

  Serial.print(" ");
  Serial.print(y);
} 

void loop(){}

Если необходимо разложить на байты большое число, например unsigned long то можно воспользоваться следующим примером:

void setup(){
  Serial.begin(9600);

  unsigned long x = 100000000; // разбиваем число на 4 байта (макс. 4,294,967,295)
  uint8_t x0 = ((x >> 0) & 0xFF);  // 00 00 00 FF
  uint16_t x1 = ((x >> 8) & 0xFF); // 00 00 FF 00
  uint32_t x2 = ((x >> 16) & 0xFF);// 00 FF 00 00
  uint32_t x3 = ((x >> 24) & 0xFF);// FF 00 00 00

  Serial.print(x0);
  Serial.print(" ");
  Serial.print(x1);
  Serial.print(" ");
  Serial.print(x2);
  Serial.print(" ");
  Serial.print(x3);

unsigned long y = (x3 << 24) + (x2 << 16) + (x1 << 8) + x0; // собираем число из 4-х байтов
  
    Serial.print(" ");
    Serial.print(y);
} 

void loop(){
}

int8_t char  от -128 до 127
uint8_t byte, unsigned char   от 0 до 255
int16_t int от -32768 до 32767
uint16_t unsigned int, word  от 0 до 65535
int32_t long от  -2147483648 до 2147483647
uint32_t unsigned long от 0 до 4294967295

 

Добавить комментарий

Случайные статьи

  • Сторожевое устройство

    Для защиты дачного участка от непрошенных гостей, для ограждения опасных объектов можно использовать сторожевое устройство. Схема такого устройства (первый вариант) показана на рис. Объект, нуждающийся в охране, окружают по периметру медным обмоточным проводом диаметром 0,1… 0,3 мм. Этот охранный шлейф может быть прикреплен к забору или к вбитым в землю …Подробнее...
  • Регулируемый источник питания с защитой по току

    На рис.1 изображена схема стабилизатора, от которой можно питать не только автомобильный магнитофон, но и любую радиолюбительскую конструкцию с напряжением от 1 до 35 В и которой не страшны большие токи нагрузки, поскольку введена токовая защита. Регулятор напряжения собран на микросхеме DA1, которая дополнена мощным транзистором, который может отдать в …Подробнее...
  • Импульсные регуляторы напряжения MC34063A, MC33063A, NCV33063A

    Импульсные регуляторы напряжения MC34063A, MC33063A, NCV33063A

    Импульсные регуляторы напряжения MC34063A, MC33063A, NCV33063A — специально разработанные микросхемы для DC-DC преобразователей с минимальным количеством внешних элементов. Технические параметры Диапазон входных напряжений 3…40 В Диапазон выходных напряжений 1.25…40 В Максимальный выходной ток 1.5 А Рабочая частота 33 кГц На рисунках показаны типовые схемы подключения регуляторов напряжения, повышающий, понижающий и инверсный. Основные элементы …Подробнее...
  • Переключатель гирлянд с плавным изменением яркости

    Предложенный переключатель гирлянд собран на 2-х микросхемах. На DD1 выполнен симметричный мультивибратор, частоту которого можно регулировать в пределах от 195 до 205 Гц переменным резистором R2. Через инверторы DD1.3 DD1.4 прямоугольные импульсы мультивибратора поступают на триггеры DD2.1-DD2.2 которые выполняют роль делителей частоты. Выходные сигналы триггеров поступают на усилители тока VT1-VT4 …Подробнее...
  • Импульсный стабилизатор напряжения 5 В с высоким КПД

    В этом стабилизаторе используется специализированная ИМС LM2575-5,0. Его выходное напряжение составляет 5 В и задано типом примененной ИМС. Входное напряжение стабилизатора может составлять от 7 до 40 В. Выходной сигнал ИМС на выв. 2 представляет собой серию широтно-модулированных импульсов. После фильтрации цепью L1С2 это напряжение поступает на нагрузку и на …Подробнее...