| Ваш IP: 54.92.190.11 | Online(41) - гости: 28, боты: 13 | Загрузка сервера: 3.79 ::::::::::::

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

 

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

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

  • К5300ЕХ025 — СТАБИЛИЗАТОР НАПРЯЖЕНИЯ С РАСШИРЕННЫМИ ФУНКЦИЯМИ УПРАВЛЕНИЯ

    К5300ЕХ025 — СТАБИЛИЗАТОР НАПРЯЖЕНИЯ С РАСШИРЕННЫМИ ФУНКЦИЯМИ УПРАВЛЕНИЯ

    К5300ЕХ025 – микросхема, предназначенная для использования в качестве линейного стабилизатора напряжения. Характеристики: Входное напряжение до 45В. Выходное напряжение 11,0 В Ток нагрузки: до 60 мА. Защита от короткого замыкания. Тепловая защита. Рабочий температурный диапазон от минус 60 °С до +125 °С Дополнительная регулировка внешним резистором выходного напряжения в диапазоне 11,0-15,0 В. Настраиваемый порог включения стабилизатора по …Подробнее...
  • УНЧ на TDA1904

    УНЧ на TDA1904

    Напряжение питания 4…20В Макс. потребляемый ток 2А Выходная мощность при Rн=4Ом, КНИ=10%: Uп=14В 4Вт Uп=12В 3,1Вт Uп=9В 1,8Вт Uп=6В 0,7Вт КНИ при Uп=9В мощность менее 1,2Вт и Rн=4Ом =0,3% Ток покоя 8…18мАПодробнее...
  • Hi-Fi усилитель для наушников

    Hi-Fi усилитель для наушников

    На рисунке показана схема Hi-Fi усилителя для наушников (моно) с выходной мощность 1 Вт. КНИ усилителя не более 0,1%. Частота пропускания от 10 до 30000 Гц. Усилитель обеспечивает выходную мощность 1 Вт на нагрузке 8 Ом при входном сигнале 500 мВ. Выходные транзисторы усилителя должны быть установлены на небольшие радиаторы. Источник …Подробнее...
  • Цифровой термометр на МК

    Цифровой термометр на МК

    Цифровой ИТ на МК с датчиком на интегральной микросхеме LM35, которая позволяет получить высокую линейность температурной зависимости протекающего через нее тока, разработан Р. Хименесом, Р. Салазаром и М. Улисесом (Electronic Design, July 2002). В основе схемы — микроконтроллер PIC16F872, программу которого можно скачать на сайте http://www.elecdesign.com/Files/29/2476/2476.zip. Индикатором служит сборка из …Подробнее...
  • Источник питания 0…30В 5А

    На рисунке показана схема источника питания с выходным напряжением от 0 до 30 В и максимальным током нагрузки 5А. В схеме используется микросхема LM723 и 4-е транзистора, два из которых силовые 2N3055.      Транзисторы 2N3055 должны быть установлены на радиаторы. Регулировка выходного напряжения осуществляется при помощи потенциометра VR1. Трансформатор должен иметь …Подробнее...