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

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


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

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

но пока что ничего не получается найти

 

3 часа назад, korsaj сказал:

Вовсе нет, вы просто путаетесь. Даю подсказку: символ '0' соответствует значению 48. А теперь как будет выглядеть строка "00000091" если символы перевести в значения (как я tifaso переводил в 74 69 66 61 73 6F).

 

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

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

@korsaj Ну ладно давай попробуем твой вариант решить.

Возьмём строку, а точнее hex число

"00000091".

После перевода получится следующее

"48 48 48 48 48 48 57 49".

Только теперь что это даёт? Как дальше действовать?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@bulat943 Из плеера то приходит именно hex число "00000091" может это и строка, но она содержит в себе hex число. Тебе то должно быть это известно раз ты с этими модулями уже работал.

А теперь всё же порядок дальнейших действий хотелось бы узнать. Как дальше переводить hex число в десятичное?

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

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

Я ж давал свой вариант,там это есть!!!

Я тоже давал совет, начать с Ассма и изучения МК. Но tifaso сказал, что Си проще, а теперь сидит как галчонок и ждет жирного червячка. За 25 страниц и Ассм успел бы изучить, и МК понять и прогу сам бы писАл, как ему надо, а не как преподносимый, готовый (но непонятный) результат, который еще надо умудриться встроить в основной код.

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

порядок дальнейших действий хотелось бы узнать

Сначала HextoDec, потом DectoStr и напоследок Str -> LCD.:)

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

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

Из плеера то приходит именно hex число "00000091" может это и строка,

Я тебе еще раз пишу-ЭТО СТРОКА!!! Я в пятый раз спрашиваю-я давал тебе пример именно для того чтоб эту СТРОКУ преобразовать в ДЕСЯТИЧНОЕ ЧИСЛО,там осталось только перевести на си,ПРОБОВАЛ?

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

1 минуту назад, Геннадий сказал:

Я тоже давал совет, начать с Ассма и изучения МК. Но tifaso сказал, что Си проще

Я наоборот стараюсь отойти как можно дальше от ассемблера на си проще будет сделать в любом случае. В ассемблере заблудишся тут же. Я по справочнику один проект кое как переправил как мне нужно и всё. Пульт с приёмником когда делал. А так бы и вовсе в ассемблер не полез никогда.

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

я давал тебе пример именно для того чтоб эту СТРОКУ преобразовать в ДЕСЯТИЧНОЕ ЧИСЛО,там осталось только перевести на си,ПРОБОВАЛ?

А где ты давал то чего то я не помню такого уже.

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

Здрасьте... Если ты не внимательно читаешь то есть ли смысл тебе отвечать?

В 27.04.2024 в 21:33, bulat943 сказал:

Сбрасываем n

Цикл,buf_index от 3 до 10 (символы rx_buf[0],rx_buf[1],rx_buf[2] не нужны,нужны именно rx_buf[3]-rx_buf[10)]

    (

     n=16*n (или сдвиг n<<4)

     Берем символ rx_buf[buf_index]

     Преобразуем в число,допустим m- если меньше 65 то отнимаем 48 иначе отнимаем 55

     n=n+m

     )

В итоге в n будет ваше число от 0 до 65535

 

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

@tifaso  Та шоб ты був  здаров  !!!!   

Я  вот с  асемблёром непркаяным бодаюсь сам , и не хныу  на весь форумец , шо  не получается  :wall:

А сел подумал  просиммулировал  надцать раз и все свои бяки в  программе сам нахожу ...  :heat:

А тебе туточки  вагон подсказок , куку  лаковых пинков  и  все не как ... 

ПЕРЕХОДИ в  режим симулирования  и прощупывай каждую строчку 

программы , пока  не осознаешь где что и как  и  ПАААА ЧАААА МУ  !!!  оно  ЯБОТАЕТ  :diablo:  

Изменено пользователем Нэцкэ

У меня есть мысль , и я её думаю ...  

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

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

После перевода получится следующее

"48 48 48 48 48 48 57 49".

Только теперь что это даёт? Как дальше действовать?

Теперь вычти 48 из каждого кода символа.

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

Ну и толку то от этого что было то и получилось "00000091". это как было hex число так и осталось. Хорош уже круголями водить и увиливать от вопроса. Ответьте уже наконец как перевести hex число в десятичное? Правильного то десятичного числа так и не получилось.

Ведь к примеру из этого hex числа "00000091" должно по итогу то получится "145" вот так вот, но как это сделать это ещё тот вопрос.

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

@tifaso  Так ...  А теперь нам всем по попрядку откуда у тебя получается код в  hex  ?

                   Куда его отправляешь  ? 

                   Индикатор таки 1602   ? 

                  И наконец  таки  открой мне загадку ,  так  как проэкта в целом не вижу  .

                 Куды потом  это десятичне  отправвлять собираешся  ?  :umnik2:

Изменено пользователем Нэцкэ

У меня есть мысль , и я её думаю ...  

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

А вот и нет не тоже самое. На входе у вас была строка (массив значений 48, 48, 48, 48, 48, 48, 57, 49), вы вычитанием "базы" преобразовали его в массив чисел 0, 0, 0, 0, 0, 0, 9, 1. А вот теперь его нужно преобразовать в число. Делается это суммированием и умножением. Например если это 16-ти личное число (НЕХ), начиная с лева каждое число из массива записывается/прибавляется в регистр (в вашем случае 32-х битный) и смещается на 4 бита влево (умножение на 16). Тем самым вы получите 0х91 в регистре. Это уже будет число. 

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

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

Ответьте уже наконец как перевести hex число в десятичное?

Вот перевод (1-я часть), щас будет истерика куда это совать, как разберешься продолжим...

uint32_t HexStrToUint32(uint8_t *str)
{
	uint8_t s;
	uint32_t value = 0;
	//
	s = *(str++);
	while (s)
	{
		value <<= 4;
		if ((s > 0x2F) && (s < 0x3A))
			value += (s - 0x30); 
		else
			if ((s > 0x40) && (s < 0x47)) 
				value += (s - 0x41 + 10);
		s = *(str++);	
	}
	return value;
}

 

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

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

Тем самым вы получите 0х91 в регистре. Это уже будет число.

Ну и зачем оно мне.

Я принимаю от плеера вот такое вот hex число "00000091" по итогу то получится "145" это в десятичном виде. Мне числа нужно получить именно вот в таком формате. затем в некоторых случаях потребуется это число ещё дополнительно пересчитать и вывести на дисплей уже в некотором пересчёте так как там хранятся и данные о времени длины трека и другие цифровые данные. Так же десятичные числа нужны в самом микроконтроллере. Так как именно на них практически всё и основывается при работе с самим плеером.

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

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

hex число "00000091"

В десятый раз вам говорю, вы путаете - это не число! Вы принимаете строку.

Полученную строку вы разбираете на нужные вам данные. Строку вы преобразуете в число в формате в котором оно передается, потом вы его преобразуете в формат микроконтроллера (НЕХ), затем вы его преобразуете в 10-тиричное (понятное вам), затем вы его преобразуете строку и выводите на экран.

Вся эта муть из-за того что вам нужно число для выполнения вычислений и число для вывода на экран в понятном вам формате

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

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

вы путаете - это не число!

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

"00000091"

"00000C2E"

"0000008D"

"0000008C"

"000000B2"

и любые другие, но длинна строки всего числа всегда одна.

Но всё же кто нибудь скажет как делать перевод этих hex чисел в десятичные?

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

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

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

Да сколько можно говорить, что это как раз иначе!!! Это строки!!!

Разберись уже с типами, в конце концов. Бывают числа, бывают строки, бывают указатели...

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

это именно hex число и никак иначе

Никак не пойму, ты хочешь научиться? Или пытаешься нас научить чему-то?

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

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

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

Да сколько можно говорить, что это как раз иначе!!! Это строки!!!

Кому как удобно, но я как называл их числами так и буду. Но так давай всё же по делу. А то всё около да рядом, а как перевести эти HEX числа в десятичные никто сказать не может.

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

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

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

Не выпадайте из общей массы: строки принято называть строками, числа числами, а символы символами. Из-за вашего "выпадения" растет "непонимание".

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

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

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Ух ты ... А там в ногах  подписано где -1 и  где  = 0 (до чего техника дошла...)
    • Я не говорю по-русски . У меня много работ на эту тему в Сербии. сложилось мнение, что только фазовращатель с трансформатором правильный, а все остальные неправильные и не могут сделать правильный сдвиг на 180 градусов. В гитарном усилителе Marshall они попытались решить эту проблему, установив резисторы номиналом 82 кОм и 100 кОм вместо одинаковых. Проблема не решается, появляются искажения, обратная связь.......
    • У меня дохли транзисторы при включении пока  не откинул в дежурке резисторы корнтроля напряжения.И дежурка стала пытаться запуститься уже с 25 вольт.    Вот тест который все показал. В разрыв обмотки силового транса включил лампу 36вольт 60 ватт. КОгда дохли транзисторы работало так - включение вспышка и погасание лампы- щелчек реле  и плавный разогрев спирали лампы.  После изменений в дежурке  работало так- включение ( на лампе тишина)- щелчек реле и плавный разогрев спирали.
    • Мне не очень нравится такая схема снятия сигнала тока. Слишком замудренная. Так же, не нравится что общий плюс - из за этого, роли верхнего и нижнего ключей меняются местами. ШИМ сигнал рулит как раз нижним ключем, с которого и снимается сигнал падения напряжения во включенном состоянии. А верхний ключ работает как блокирующий диод. Узкое место - бутстрепная схема питания его затвора. Для его работы нужна схема вольтодобавки, независимая от коэфф. заполнения, что и приведено на картинках. Термостабильность токоограничения тоже под вопросом;) Так что, вместо снятия сигнала тока, я для защиты применяю датчик тока в виде геркона с несколькими витками провода. Геркон закорачивает конденсатор в цепи задания скорости. Ток падает, геркон отпускает. Срабатывает софтстарт, конденсатор плавно заряжается и повторяется попытка пуска. Частота перезапуска и длительность софтстарта регулируется емкостью кконденсатора в цепи движка потенциометра. 
    • Были такие предположения,насчёт момента срабатывания дежурки,т.е как вы говорите конденсаторы зарядились до какого то определенного напряжения ,а дежурка ещё не сообразила и не запустила управление Хотя раньше же термисторы стояли и ничего нормально работало,сегодня приведу осцилки если что с затворов и коллекторов
    • Вместо аккумулятора нужно подавать не более  4.2 вольта, иначе могут наступить непредсказуемые последствия. Да и аккумулятор похоже цеплялся на разъем, обозначенный красным цветом и он не оторван. В чем проблема - распаять разъем или поменять аккумулятор и все будет штатно.
×
×
  • Создать...