Таблица значений байта

Тема в разделе "Arduino & Shields", создана пользователем Mestniy, 24 ноя 2015.

  1. Mestniy

    Mestniy Гуру

    Всем привет. Можете подсказать, где найти таблицу всех 256 значений байта?
    Заранее спасибо!
     
    Viquis нравится это.
  2. Alex19

    Alex19 Гуру

    Сделайте ее сами, вот код

    Код (C++):
    void setup()
    {
      Serial.begin(115200);
    }

    byte num = 0;

    void loop()
    {
      if (!num)
      {
        Serial.println("Dec;Hex;Bin");
      }
      Serial.print(num, DEC);
      Serial.print(";0x");
      Serial.print(num, HEX);
      Serial.print(";");
      Serial.println(num, BIN);
      num++;
     
      delay(300);
    }
    Копируем результат из Serial в Excel. Далее разбиваем текст по ячейкам, смотрите ту - http://sirexcel.ru/osvaivaem-excel/kak-razbit-tekst-po-stolbcam-v-excel/
     
    Tomasina и Mestniy нравится это.
  3. Mestniy

    Mestniy Гуру

    Спасибо Вам попробую. Сейчас пробую разобраться в коде грея.
     
    Viquis нравится это.
  4. Alex19

    Alex19 Гуру

    Тогда для Вас будет лучше данный код, он добавляет 0-ки

    Код (C++):

    void setup()
    {
      Serial.begin(115200);
    }

    byte num = 0;

    void loop()
    {
      if (!num)
      {
        Serial.println("Dec;Hex;Bin");
      }
      Serial.print(num, DEC);
      Serial.print(";0x");
      if (num < 16)
      {
        Serial.print("0");
      }
      Serial.print(num, HEX);
      Serial.print(";");
      PrintBin(num);
      num++;
      delay(200);
    }

    void PrintBin(byte n)
    {
        char buf[8 * sizeof(byte) + 1];
        char *str = &buf[sizeof(buf) - 1];
        *str = '\0';
        int i = 0;
        do
        {
          if (n)
          {
            byte m = n;
            n /= 2;
            char c = m - 2 * n;
            *--str = c < 10 ? c + '0' : c + 'A' - 10;
          }
          else
          {
            *--str = '0';
          }
          i++;
       
        }
        while(i < 8);
        Serial.println(str);
      }
     
    Не сталкивался с кодом грея, но в сети есть примеры перевода с бинарного в грей и наоборот (не знаю, рабочие или нет, поэтому ссылок не привожу).
     
    Mestniy нравится это.
  5. Mestniy

    Mestniy Гуру

    Не подскажите можно ли произвести компиляцию например из BIN, в HEX?
     
    Viquis нравится это.
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    такая компиляция бессмысленна, т.к. в МК _все_ числа хранятся в бинарном виде, а то, что выводится как BIN, или HEX, или DEC - это лишь способы визуального представления одного и того же числа.
     
    Mestniy нравится это.
  7. Unixon

    Unixon Оракул Модератор

    Пора создавать раздел "Юмор"...
     
    Mestniy нравится это.
  8. Onkel

    Onkel Гуру

    местный, возможно, имел в виду файл для закачки в мк- есть hex, но бывают и бинарные, не помню уж какой протокол и как называется. Но точно есть.
     
    Mestniy нравится это.
  9. Unixon

    Unixon Оракул Модератор

    Компиляцию чего, откуда и куда?
     
  10. Onkel

    Onkel Гуру

    hex, он же чего-то там интел формат - программатор его чикает, отрезает лишнее и грузит в мк, а в bin уже все вырезано, его можно прямо грузить. Да и загрузчики, прошитые в мк, часто берут через uart файлы в bin формате. Перекомпилировать его можно, из hex (он типа избыточен и в аски) в bin, а обратно - неоднозначно, это все равно как из bin переделать в исходный код. Можно теоретически, но будет треш.
     
    Mestniy нравится это.
  11. Unixon

    Unixon Оракул Модератор

    Да может @Mestniy хочет число перекодировать из одного представления в другое (вопрос про таблицу байтов и слова про код Грея как бы намекают), давайте дождемся его ответа :)
     
    Последнее редактирование: 9 мар 2016
    Mestniy нравится это.
  12. Onkel

    Onkel Гуру

    а по моему скрипач уже не нужен. Вроде мы и без него разобрались ;<)
     
    Mestniy нравится это.
  13. Unixon

    Unixon Оракул Модератор

    Mestniy нравится это.
  14. Mestniy

    Mestniy Гуру

    Дико извиняюсь перед всеми вами. Я хочу перекмпелировать hex число, которое приходит в сериал в bin. Но не знаю как это делать. Спасибо за ваши внятные ответы!
     
    Viquis нравится это.
  15. Unixon

    Unixon Оракул Модератор

    Код (C++):
    uint8_t hexton(const uint8_t h)
    {
      if (h >= '0' && h <= '9') return (h - '0');
      if (h >= 'A' && h <= 'F') return ((h - 'A') + 10);
      return 0;
    }
    //
    {
      uint8_t h,l,b;
      h = Serial.read();
      l = Serial.read();
      b = (hexton(h)<<4) | hexton(l);
    }