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

BT201 схема подключения и управление из под ATMEGA8


Рекомендуемые сообщения

16 минут назад, tifaso сказал:

Да сколько можно говорить что это именно hex число и никак иначе.

Это самые обыкновенные строки,как и "Hello!"

Теперь смотри-принял ты "00000091"-это строка,потом преобразуешь его в ЧИСЛО!!! получил число в формате HEX=00000091,а потом берешь по одному,начиная с крайнего левого,умножаешь на 16,потом берешь второе число,прибавляешь,все это снова умножаешь на 16,потом берешь третье число и т д со всеми числами

В итоге у тебя получится-спереди ноли так что результат =0,берем седьмое число (9),умножаем на 16 (9*16=144),берем восьмое число (1),прибавляем (144+1=145)

Усе

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

@bulat943 Теперь то всё вроде бы понятно стало. только почему восьмое число (1) так и остаётся без умножения? Тут есть какие то исключения что ли? Сразу всё это прояснить нужно чтоб пересчёт проводился правильно.

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

10 минут назад, tifaso сказал:

Кому как удобно

Нужно как правильно, а не как удобно.

 

11 минут назад, tifaso сказал:

как перевести эти HEX числа в десятичные никто сказать не может

Разумеется. Никто не может и не скажет, потому что это строки. Сначала строковые переменные нужно перевести в число, потом с числом делать, что угодно, а для вывода на экран снова перевести в строку.

Я тебе уже рекомендовал не останавливаться на трудных функциях, а делать вместо них "заглушки". Напиши функцию, которая примет параметром строку "00000091" и вернёт фиксированное число, пусть 145. И двигайся дальше. Попробуй вывести 145 на экран. Не поверишь, но тебя ждёт много удивительного впереди. А вот когда ты выведешь на экран 145, возможно придёт понимание, что есть числа, а есть строки. И после этого быть может получится написать функцию преобразования hex СТРОКИ в десятичное ЧИСЛО!

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

3 минуты назад, tifaso сказал:

почему восьмое число (1) так и остаётся без умножения

Потому что 16 в степени 0 дает =1,а умножать на один бессмысленно,но если очень надо то умножьте на один

Ссылка на комментарий
Поделиться на другие сайты

19 минут назад, bulat943 сказал:

В итоге у тебя получится-спереди ноли так что результат =0,берем седьмое число (9),умножаем на 16 (9*16=144),берем восьмое число (1),прибавляем (144+1=145)

Объясните на кой это число, в каком регистре (или еще где) число 145 будет храниться, и что самое интересное, что с ним можно делать? Чтобы к нему что-то прибавить, например, нужно вести расчеты в BCD, геморой....

Ссылка на комментарий
Поделиться на другие сайты

Номер песни,длительность песни,текущее время,количество песен в папке и т д

Как делать в си подобное я больше не знаю... Я ж сразу написал-в си не профи,только сегодня скачал студию,изучаю...

Изменено пользователем bulat943
Ссылка на комментарий
Поделиться на другие сайты

А лучше вышвыривать полученную строку на индикатор как есть, а на переднюю панель "процессора" приклеить таблицу перевода шестнадцатиричных чисел в десятичные. Вывод на индикатор в нормальном виде можно сделать в версии 2.0.

Ссылка на комментарий
Поделиться на другие сайты

11 минут назад, bulat943 сказал:

Номер песни,длительность песни,текущее время,количество песен в папке и т д

Так не число же в этом случае нужно, а строка числа, int например, в десятичном виде чтоб на экран вывести. Мне просто интересно каким образом полученное 145 будет в строку переводится\, как будет выделена 1, как 4 и как 5????????????

Ссылка на комментарий
Поделиться на другие сайты

14 минут назад, donec сказал:

на кой это число, в каком регистре

У него же не asm, будет тип int иметь значение 145. Далее на Си можно складывать, вычитать, умножать и т.д.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, tifaso сказал:

понятно тут уже как в этой статье действовать

Только возведение в степень заменить на перестановки либо на повторное умножение. Например 16 в степени 2 это 16*16 и ТД.

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, donec сказал:

Мне просто интересно каким образом полученное 145 будет в строку переводится

Задача была перевести нех число,представленное в виде строки,в десятичное значение,а обратно в строку-не знаю

Ссылка на комментарий
Поделиться на другие сайты

12 минут назад, donec сказал:

145 будет в строку переводится

Вот и я про то же! Занялся бы ТС этой функцией для начала. Потом и обратный перевод осилил бы.

С уважением, Владимир

Ссылка на комментарий
Поделиться на другие сайты

Быть не может )

5 минут назад, bulat943 сказал:

а обратно в строку-не знаю

 

34 минуты назад, tifaso сказал:

Теперь то всё вроде бы понятно стало.

Так что, покажите нам свою рукотворную функцию?

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, korsaj сказал:

покажите нам свою рукотворную функцию?

Ну всю логику написания понял. Завтра на свежую голову буду уже писать код, но никак не сейчас в 2 часа ночи.

Ссылка на комментарий
Поделиться на другие сайты

51 минуту назад, ДядяВован сказал:

будет тип int иметь значение 145. Далее на Си можно складывать, вычитать, умножать и т.д.

Чтобы так делать нужно BCD математику вводить.

 

47 минут назад, bulat943 сказал:

Задача была перевести нех число

В hex число строка переводится с помощью uint32_t HexStrToUint32(uint8_t *str) как пример.

Есть например строка от BT201 "М1+00000091\r\n", по М1+ выявляется функция BT201, затем переход на параметры (на первый 0), делается нуль-терминальная строка, параметр переводится в int (с помощью HexStrToUint32), получили число 0х91, МК с ней и работает (складывает вычитает умножает...), чтоб вывести на экран получившееся int переводится функцией ( например void IntToStr(char *str, uint32_t value) или int sprintf(char *__restrict, const char *__restrict, ...), но она 6 кило весит) в десятичную строку, получили строку "145", все, больше ничего не нужно, и 145 больше нигде не нужен.

Так-же и время переводится, с int выделяются часы, минуты, секунды, смотря в каком виде они поступают с BT201.

Ссылка на комментарий
Поделиться на другие сайты

Без проблем, мы все с нетерпением ждём. И конечно поможем, подскажем. Но писать за вас не хочется (не из-за вредности).

1 минуту назад, donec сказал:

HexStrToUint32)

Дело в том что tifaso тяжело даётся начальное программирование. А переделывать его и ему код на указатели не реально (надеюсь пока что). Попросту не уложится у него в голове.

Ссылка на комментарий
Поделиться на другие сайты

58 минут назад, donec сказал:

В hex число строка переводится

58 минут назад, donec сказал:

и 145 больше нигде не нужен

Вот никак не могу понять, почему вы так бескомпромиссно называете Это именно hex-числом? И из-за этого, имхо, никак не можете договориться с Дядей Вованом: он говорит, что значение переменной 145, а вы - нет, 0х91, а если бы было 145, то не обойтись без двоично-десятичного представления. Как по мне, так число - оно число и есть, а если уж прям цепляться, то в int-е лежит не 145 десятичное и не 91 шестнадцатиричное, а вовсе даже 0b10010001. По вашим решениям-то вопросов нет, а вот по терминологии есть вопросы и заранее спасибо за ответ.

Изменено пользователем CruelAsm
Ссылка на комментарий
Поделиться на другие сайты

32 минуты назад, CruelAsm сказал:

Вот никак не могу понять, почему вы так бескомпромиссно называете Это именно hex-числом?

А в каком виде здесь число представленное строкой "М1+00000091\r\n"?

Дальше умножили 9 на 16 = 144 и прибавили 1 = 145, для чего эти 145, просто  для того чтобы знать что в десятичном виде это 145? В МК это 0х91, и он с 0х91 работает. Или хранить будут в памяти как 0х145 чтобы потом поразрядно преобразовать в строку и вывести на экран, например 145 это номер файла, а нужно проиграть файл 139, но тогда чтобы получить 139 нужна BCD.

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ДядяВован сказал:

Нет, МК работает с 0b10010001

Так это одно и то-же число, только по разному записано.

Можно в таком случае глубже копнуть, он не с нулями и единицами работает, а с напряжениями, а если глубже то ..., и так до бесконечности. Это-же все условности, я ведь про другое пишу, но такое ощущение вы  с @CruelAsmне понимаете о чем речь.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   2 пользователя онлайн


×
×
  • Создать...