Перейти к содержанию

tifaso

Members
  • Постов

    2 048
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент tifaso

  1. @bulat943,@korsaj Я так сейчас посмотрел и понял что тут ещё как завязана и эта таблица аски. Так что завтра буду пробовать дорабатывать свой код. Как только получится адекватно выводить всё полученные цифры можно уже будет продвигаться далее.
  2. Самое то интересное я же пробовал сперва просто вывести напрямую содержимое массива на дисплей и оно выводит правильно, но когда начинаешь переводить число в десятичное и затем уже вывести, то тут уже на дисплее совершенно не то что хотел увидеть получаешь. Вот потому тут нужно понять как числа правильно переводить в десятичные. Чтобы и на дисплее потом правильно отобразилось и для дальнейшего пересчёта в случае с временем тоже.
  3. я нигде не говорил что надо умножать на такое большое число,надо умножить на 16 Вот статья где говорится что нужно работать со степенями при переводе чисел с одного значения в другое, а 16 в степени как раз таки и получается что у меня в коде. Не будет оно так работать. Ведь в массиве hex число, а там могут появится и буквы и как тогда ты действовать будешь?
  4. С этим без объяснений и подробнейших комментариев что и куда девается и откуда что берётся не разберёшься никогда. @korsaj, @bulat943 По поводу функции перевода попробовал записать, но ожидаемого результата я так и не получил. Вроде бы ничего сложного всё должно быть как то так, но оно по неизвестной причине не работает. Портянки под спойлер прячь
  5. Ну всю логику написания понял. Завтра на свежую голову буду уже писать код, но никак не сейчас в 2 часа ночи.
  6. В общем понятно тут уже как в этой статье действовать нужно при написании кода пересчёта.
  7. @bulat943 Теперь то всё вроде бы понятно стало. только почему восьмое число (1) так и остаётся без умножения? Тут есть какие то исключения что ли? Сразу всё это прояснить нужно чтоб пересчёт проводился правильно.
  8. Кому как удобно, но я как называл их числами так и буду. Но так давай всё же по делу. А то всё около да рядом, а как перевести эти HEX числа в десятичные никто сказать не может.
  9. Да сколько можно говорить что это именно hex число и никак иначе. Там могут быть разные числа "00000091" "00000C2E" "0000008D" "0000008C" "000000B2" и любые другие, но длинна строки всего числа всегда одна. Но всё же кто нибудь скажет как делать перевод этих hex чисел в десятичные?
  10. Ну и зачем оно мне. Я принимаю от плеера вот такое вот hex число "00000091" по итогу то получится "145" это в десятичном виде. Мне числа нужно получить именно вот в таком формате. затем в некоторых случаях потребуется это число ещё дополнительно пересчитать и вывести на дисплей уже в некотором пересчёте так как там хранятся и данные о времени длины трека и другие цифровые данные. Так же десятичные числа нужны в самом микроконтроллере. Так как именно на них практически всё и основывается при работе с самим плеером.
  11. Ну и толку то от этого что было то и получилось "00000091". это как было hex число так и осталось. Хорош уже круголями водить и увиливать от вопроса. Ответьте уже наконец как перевести hex число в десятичное? Правильного то десятичного числа так и не получилось. Ведь к примеру из этого hex числа "00000091" должно по итогу то получится "145" вот так вот, но как это сделать это ещё тот вопрос.
  12. Я наоборот стараюсь отойти как можно дальше от ассемблера на си проще будет сделать в любом случае. В ассемблере заблудишся тут же. Я по справочнику один проект кое как переправил как мне нужно и всё. Пульт с приёмником когда делал. А так бы и вовсе в ассемблер не полез никогда. А где ты давал то чего то я не помню такого уже.
  13. @bulat943 Из плеера то приходит именно hex число "00000091" может это и строка, но она содержит в себе hex число. Тебе то должно быть это известно раз ты с этими модулями уже работал. А теперь всё же порядок дальнейших действий хотелось бы узнать. Как дальше переводить hex число в десятичное?
  14. @korsaj Ну ладно давай попробуем твой вариант решить. Возьмём строку, а точнее hex число "00000091". После перевода получится следующее "48 48 48 48 48 48 57 49". Только теперь что это даёт? Как дальше действовать?
  15. Вообще замучился уже с этим. Уже с неделю сижу пытаюсь решить вопрос с переводом чисел их hex в десятичные. Все варианты которые я пробовал так и не заработали либо какие то ошибки либо вообще не работает. Мне нужен какой нибудь адекватный вариант перевода чисел, но пока что ничего не получается найти.
  16. Смотря ещё какие библиотеки если это стандартные из пакета студии, то скажите просто что тут нужно подключить. А сторонние я ставить не буду.
  17. Вот этот код ты предлагал. Я пробовал его он сплошные ошибки бьёт буквально на каждой строке. Не знаю даже что ещё пробовать.
  18. Пробовал уже. Многодневные поиски ни к чему не привели. Собственно поэтому и спрашиваю как это сделать?
  19. С числами тут всё намного сложней. 00000091. Как по калькулятору показывает 145 что и является правдой. Я знаю что я туда заслал и что должен получить, но числа то каждый раз разные. Поэтому тут прям в программе нужно высчитывать при переводе из hex в десятичное. Как преобразовать шестнадцатеричную систему в десятичную. Другого варианта я не вижу. Потому как в таблице далеко не все значения есть особенно на числа. Наверняка может и есть способы попроще это сделать, но больше ничего не знаю.
  20. @korsaj tifaso там написано ну и смысл от этого. Ты мне хоть функцию подскажи как написать чтобы делать перевод чисел программно. От этого хоть польза будет, а не этот ребус, которым время лишбы занять и своё и моё.
  21. @korsaj Это то понятно что таблицей нужно переводить. Но как это сделать кодом? Вот в этом и заключается вопрос. Каким образом код писать на эту функцию?
  22. И всё же как не крути, а я всё равно стопорюсь на выводе чисел полученных по UART. К примеру приходит по UART следующее M2+00000091. Тут понятно что мы при получении обрабатываем принятые данные M2 это тип данных. Это уже нам известно. далее сами данные в виде hex числа 00000091. Это число нужно взять из массива как видно оно не с самого начала массива расположено и перевести в десятичное и только после этого с ним можно будет уже работать. Если это число времени трека, то там нужно ещё провести расчет на то чтоб из полученного десятичного числа высчитать минуты и секунды. Мне просто сейчас нужно понять каким образом вывести числа в нужном виде?
  23. Да сейчас посмотрел. Вполне достаточно задержки _delay_us(1); Нет порядки не попутаны всё чётко. При выводе символа вызывается функция send_byte там и указан весь порядок отправки данных. void write(uint8_t n) { n<<=4; E1; //линию Е в 1 LCD_PORT&=~DATA; //удалить предыдущую отправку LCD_PORT|=n; //выставить значение на пины управления дата битами _delay_us(1); E0; //линию Е в 0 } void send_byte(uint8_t byte, uint8_t tip) { if (tip) //если тип данные на линии RS 1 { RS1; } else //иначе тип команда и на линии RS 0 { RS0; } write(byte>>4); //передача старшего полубайта _delay_us(250); write(byte); //передача младшего полубайта _delay_us(250); } Главное что всё это уже работает, а большего и не нужно.
×
×
  • Создать...