| Ваш IP: 54.226.23.160 | Online(22) - гости: 13, боты: 7 | Загрузка сервера: 1.61 ::::::::::::

Функции 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

 

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

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

  • Микро-сигнализация

    Схема микро-сигнализации устанавливается в маленькую коробочку. Небольшой магнит расположен близко к геркону. При разделении магнита и геркона срабатывает сигнализация. Микро-сигнализацию можно использовать для охраны двери, окна, сумки и других вещей. При срабатывании сигнализации динамик издает громкий звуковой сигнал. Схема сигнализации представляет собой генератор, питается уст-во от батарей 3В (2*1,5В). Примечания: …Подробнее...
  • Параметры отечественных биполярных транзисторов

  • Эксплуатация и ремонт компактных люминесцентных ламп

    Сокращения: КЛЛ — компактная люминесцентная лампа ТЛЛ — трубчатая люминесцентная лампа ЛН — лампа накаливания Принцип действия КЛЛ заключается в подаче на 2-а электрода покрытых барием или окисью бария, напряжения, в результате чего происходит возбуждение(ионизация) паров смеси аргона и ртути. В результате ионизации возникает низкотемпературная плазма внутри лампы. Пары ртути …Подробнее...
  • Узел настройки УКВ-ЧМ приемника

    Узел настройки УКВ_ЧМ приемника представляет собой синтезатор напряжения для электронной настройки УКВ_ЧМ приемника и как дополнительное уст-во — электронную линейную шкалу напряжения для контроля напряжения подаваемого на варикапы приемника. Напряжение настройки приемника устанавливается при помощи полевого транзистора VT1, в его затворной цепи включен С1, при нажатии S1 или S2 С1 …Подробнее...
  • Простой приемник на К140УД1А

    Для начинающих радиолюбителей предлагаю собрать схему простого приемника принимающего одну станцию в диапазоне средних волн. ОУ обладает высоким коэффициентом усиления (от 600 до 4500). В данной схема ОУ выполняет сразу несколько функций: усилителя радиосигнала, детектора и усилителя звуковой частоты. Колебательный контур L1 настроенный на одну станцию, выделенные на нем колебания …Подробнее...