| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Разложить число на символы ASCII
18.02.2011, 01:35
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Разложить число на символы ASCII
Сообщение от 7Fantomas7
|
|
Не денусь я походу от sprintf никуда.
|
Если так нужна универсальность, то да - останетесь с sprintf. Вот интересно что лучше - иметь 3-5 не универсальных быстрых функции по 100-200 байт или одну универсальную на 3Кб.При этом еще и неторопливую и очень любящую стек.
|
|
|
|
18.02.2011, 01:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Разложить число на символы ASCII
Сообщение от 7Fantomas7
|
sym_out1[4];
Есть стандартная таблица ASCII с набором различных символов количеством 127 с адресами в таблице 0x00 до 0x7F.
Каким доступным способом можно в масив писать различные символьные, цифровые, а также смешаные значения так чтоб каждый знак или символ писался в элемент масива в виде адреса таблицы ASCII.
В Code Vision AVR.
|
sym_out1[x]==chr(y), где х позиция в массиве, y - стандартный символ, в sym_out1[x] - код символа(порядковый номер) в таблице ASCII. Почти на любом ЯВУ. Я правильно понял - это надо?
Перечитал пост 5. Наверное закралась ошибка. Под
Сообщение от 7Fantomas7
|
|
ADCSRA
|
следует понимать ADCH + ADCL? Нужны все 10 бит, то есть 4х-значное число?
Последний раз редактировалось omercury; 18.02.2011 в 02:04.
|
|
|
|
18.02.2011, 11:00
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Разложить число на символы ASCII
testerplus
|
Цитата:
|
|
А все отчасти потому, что вопрос сформулирован через пень-корягу
|
Представляете оказалось не через пень корягу не для всех оказалось еще на первой странице сказано было что без sprintf не обойтись.
|
Цитата:
|
|
Ваш вопрос мог звучать так: "Подскажите экономичный аналог функции sprintf() для форматирования текста и чисел с плавающей запятой."
|
Ну хорошо пусть звучит так.
|
Цитата:
|
|
(Часть вопроса про перекодирование в стандартный ASCII-код даже не берусь переформулровать, совсем не понятно, о чем речь)
|
Не спрашивал вовсе, где вы это нашли?
|
Цитата:
|
|
И получили бы десяток дельных советов с примерами кода.
|
Хоть один совет подкинте. Дельный. А то умничать и жаловаться на неправильный вопрос каждый может.
|
Цитата:
|
|
но Вам, понимаешь ли, не разжевали...
|
В кратце не объяснили что делатся.
Для меня это важно. Я не читаю бегло чужие исходники. И никогда об таком не заявлял.
kison
|
Цитата:
|
|
Вот интересно что лучше - иметь 3-5 не универсальных быстрых функции по 100-200 байт или одну универсальную на 3Кб.
|
Не универсальные быстрые функции написаны и работают. Захотелось универсальной.
omercury
|
Цитата:
|
|
следует понимать ADCH + ADCL? Нужны все 10 бит, то есть 4х-значное число?
|
Да вы правы. Нужны 8 старших бит, поэтому ADCH с выравниванием в лево. Просто ошибся.
А про chr где почитать? Я к своему стыду не знаю что это.
Но в принципе немного не то. Действительно ищется альтернатива больше быстрая и меньше емкая чем sprintf.
Последний раз редактировалось 7Fantomas7; 18.02.2011 в 11:11.
|
|
|
|
18.02.2011, 11:42
|
|
|
Прописка
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
|
Re: Разложить число на символы ASCII
Сообщение от kison
|
|
Вот интересно что лучше - иметь 3-5 не универсальных быстрых функции по 100-200 байт или одну универсальную на 3Кб.При этом еще и неторопливую и очень любящую стек.
|
Это вопрос из области философии.  Как и любое применение библиотек, даже своих, из других проектов.
КАЖДЫЙ, в каждом конкретном случае, должен решить САМОСТОЯТЕЛЬНО. В зависимости от конкретных требований, наличия ресурсов и т.п. Это и есть разработка ПО. А быстрое стучание по клавиатуре - это, в лучшем случае, кодирование.
И никакие "советы постороннего" с любого форума здесь не помогут.
|
|
|
|
18.02.2011, 11:50
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Разложить число на символы ASCII
Теперь понятно. Функция Chr() действительно не то. Она возвращает код символа в скобках.
Универсальная функция, к сожалению не получится. Всё из-за того, что используются разные типы данных. Вам нужно числовые данные перекодировать в символьные. Называется двоично-десятичное преобразование (оно, кстати, было реализовано). Очень важно правильно выбрать тип исходных данных - от этого сильно зависит результат компиляции(размер полученного кода, скорость расчётов). Для данного случая тип исходных данных лучше назначить Byte, в крайнем случае Unsigned Integer. И вообще старайтесь не использовать дробных чисел там, где это не нужно.
Последний раз редактировалось omercury; 18.02.2011 в 12:05.
|
|
|
|
18.02.2011, 12:02
|
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
|
Re: Разложить число на символы ASCII
Сообщение от 7Fantomas7
|
|
А про chr где почитать? Я к своему стыду не знаю что это.
|
chr это просто три буквы, три знака в ASCII таблице.
Если эти три буквы будут написаны в программе, после названия типа, тогда это было бы название переменной.
В паскале это функция перевода типа byte в тип char.
А если перед тем как писать поэму, вы прочитали бы уже о строках, то и не задавали бы здесь таких вопросов.
|
|
|
|
18.02.2011, 12:22
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Разложить число на символы ASCII
omercury,
|
Цитата:
|
|
Всё из-за того, что используются разные типы данных.
|
Из за того.
Я динамичку делал не единожды. В принципе вы это видели.
Просто надоело каждый раз под какието приложения подгонять динамичку да еще и под какиенибудь события выводить на самисегментник символы которые не цифры, которые то и буквами назвать сложно. Но выводить нужно, вот и решил упростить себе жизнь, чтоб сделать 1 раз и больше не мучится. А жизнь не очень то упрощается.
|
|
|
|
18.02.2011, 12:38
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Разложить число на символы ASCII
Так ведь динамичка и преобразования совсем разные функции. Собрать просто матеметику в один файл, динамичку и другие аппаратные функции в другой и подключать их к проекту. Си не асм - лишнего из библиотеки не возьмёт. Можно даже (один раз -то) с ассемблерными вставками написать для быстродействия. А потом в хидере переназначил переменные - и пользуй на здоровье.
|
|
|
|
18.02.2011, 13:00
|
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
|
Re: Разложить число на символы ASCII
Посмотрел соседнею ветку и нашел, что нужную вам функцию человек уже написал
http://elm-chan.org/fsw/strf/xprintf.html (Не поддерживает float)
Последний раз редактировалось CodeNameHawk; 18.02.2011 в 13:21.
|
|
|
|
18.02.2011, 14:05
|
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Разложить число на символы ASCII
Сообщение от 7Fantomas7
|
|
Ну хорошо пусть звучит так.
|
Спасибо, что разрешили... Только это Вы должны были его так задать.
|
Цитата:
|
|
Не спрашивал вовсе, где вы это нашли?
|
В первом же посте. Просто не решился тот бред переводить.
|
Цитата:
|
|
Хоть один совет подкиньте. Дельный. А то умничать и жаловаться на неправильный вопрос каждый может.
|
Не дерзи. С какого я Вам помогать буду? Читал Ваши предыдущие посты - что в лоб, что по лбу. Один хрен: положи в рот, да разжуй. Читать ничего не желаем, думать над данными советами - тоже. Вопросы задаете, как первоклашка: хочу, чтобы вот, и чтобы вот так. (А в кругу друзей-то небось бахвальство: я программист!)
Так что совет я даю, но не Вам, а тем кто тратит здесь на Вас свое время.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо testerplus за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:27.
|
|