Удалите эту тему

Тема в разделе "Флудилка", создана пользователем itehno, 17 апр 2019 в 17:33.

  1. itehno

    itehno Нерд

    Админ, жги!
    Эту тему уже не спасти!
     
    Последнее редактирование: 18 апр 2019 в 12:10
  2. b707

    b707 Гуру

    а что за контроллер? на обычной ардуине строка
    ((uint)readBufer[4] << 16)
    смысла не имеет. и всегда рана нулю

    Что касается вопроса, как превратить байты в число - это зависит от размерности числа, знаковое или беззнаковое. порядок байт. Вы там указали три байта - трехбайтовых целых на ардуинах нет. Значит видимо это неполное число - то есть еще надо знать, старшие эти три байта или младшие и что было в остальных байтах...
     
  3. parovoZZ

    parovoZZ Гуру

    это C#
    ну то бишь 32 бита как минимум.

    виндовый калькуль выдал:
    это если представленные числа в шестнадцатеричном формате. Если в десятичном, то что к чему преобразовывать? Бери да жуй.
     
  4. DetSimen

    DetSimen Гуру

    Ты чо хочешь сделать то? Абисни внятна.
     
  5. parovoZZ

    parovoZZ Гуру

    оплата потерянного времени такая
    так что выбирай - вечером бухнуть или поклацать по клаве и остаться трезвым
     
  6. b707

    b707 Гуру

    судя по всему. ТС нада прератить 4 байта в 32-битное целое.
    В принципе. можно взять тот код на С# и вставить в ардуину, добавив только правильный тип результата - уже будет работать.
    Меня только смущает. что судя по этому коду, там знак - в младшем байте, а в ардуине вроде в старшем? - или путаю?
     
  7. DetSimen

    DetSimen Гуру

    Я уже почти всопли. Щас допью пузырь, да паду вабъятья Марфея.
     
  8. parovoZZ

    parovoZZ Гуру

    так тогда надо взять что-то 32-ух битное и впихнуть туда C#. Вон @ИгорьК LUA впихивает во всё. Сишарп чем хуже?
     
  9. parovoZZ

    parovoZZ Гуру

    3 байта вижу. Четвёртый где?

    а пятый где?
    так если ты все знаешь, где затык?
     
  10. DetSimen

    DetSimen Гуру

    Байты рассыпаны, фонаря нет, собрать не может
     
  11. DetSimen

    DetSimen Гуру

    Хорошо, если он не программистом работает, которые "из новых"
     
  12. DetSimen

    DetSimen Гуру

    Дак я тоже не программист. Последнее мае, перед смертью, место работы: "Работнег склада"
     
  13. parovoZZ

    parovoZZ Гуру

    Самое время заняться АЛКОритмом для ТС. Он потом большое спасибо скажет. А может даже и нальёт.
     
  14. parovoZZ

    parovoZZ Гуру

    С учебника надо постигать азы, а не с неподъемных задач.
     
  15. parovoZZ

    parovoZZ Гуру

    ??? а это кто писал
    Если это происходит в весах, то на стороне необходима зеркальная операция. Как? Вот пример строкой выше. Дальше сам.
     
  16. b707

    b707 Гуру

    я вам уже ответил - возьмите приведенный код на C# и вставьте как есть в ардуино скетч поменяв int на long Будет работать
     
    itehno нравится это.
  17. parovoZZ

    parovoZZ Гуру

    не
     
    DetSimen и b707 нравится это.
  18. b707

    b707 Гуру

    itehno - зачем тему удалять? Вы ж ответ получили? Или опять не устраивает "дружелюбеность форума"?
     
  19. itehno

    itehno Нерд

    Нет. Совет не помог.
    1 1 214 25 0
    Но я сделал по своему, что соответствует формуле [2] + ([3] * 256) + ([4] * (256 * 256))

    И все работает:
    Код (C++):
    if(Wire.available()){TMP|= Wire.read();}
        if(Wire.available()){TMP|=(Wire.read()<<8);}

        if(Wire.available()){TMP|= Wire.read();}
        if(Wire.available()){TMP|=(Wire.read()<<8);}
        DLC = int( TMP );
        while( Wire.available() ){  Wire.read();}
        VES = (TMP - 6639) / 8;
    DLC = 6639
    VES = 0

    И да. Дружелюбность форума меня не устраивает.
    Всем спасибо за отбитое желание сюда заходить.
    Счастливо оставаться.

    Еще раз, админы, удалите тему.
     
    Последнее редактирование: 18 апр 2019 в 14:14
  20. b707

    b707 Гуру

    вообще-то код на C#. что вы сами постили - именно это и делает.
    Но да - мало просто спросить, надо еще и суметь понять ответ...