Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Разложить число на символы ASCII

Непрочитано 18.02.2011, 01:35  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Сообщение от 7Fantomas7 Посмотреть сообщение
Не денусь я походу от sprintf никуда.
Если так нужна универсальность, то да - останетесь с sprintf. Вот интересно что лучше - иметь 3-5 не универсальных быстрых функции по 100-200 байт или одну универсальную на 3Кб.При этом еще и неторопливую и очень любящую стек.
Реклама:
kison вне форума  
Непрочитано 18.02.2011, 01:40  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию 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.
omercury вне форума  
Непрочитано 18.02.2011, 11:00  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию 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.
7Fantomas7 вне форума  
Непрочитано 18.02.2011, 11:42  
Serega_B
Прописка
 
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
Serega_B на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Сообщение от kison Посмотреть сообщение
Вот интересно что лучше - иметь 3-5 не универсальных быстрых функции по 100-200 байт или одну универсальную на 3Кб.При этом еще и неторопливую и очень любящую стек.
Это вопрос из области философии. Как и любое применение библиотек, даже своих, из других проектов.
КАЖДЫЙ, в каждом конкретном случае, должен решить САМОСТОЯТЕЛЬНО. В зависимости от конкретных требований, наличия ресурсов и т.п. Это и есть разработка ПО. А быстрое стучание по клавиатуре - это, в лучшем случае, кодирование.
И никакие "советы постороннего" с любого форума здесь не помогут.
Serega_B вне форума  
Непрочитано 18.02.2011, 11:50  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Теперь понятно. Функция Chr() действительно не то. Она возвращает код символа в скобках.
Универсальная функция, к сожалению не получится. Всё из-за того, что используются разные типы данных. Вам нужно числовые данные перекодировать в символьные. Называется двоично-десятичное преобразование (оно, кстати, было реализовано). Очень важно правильно выбрать тип исходных данных - от этого сильно зависит результат компиляции(размер полученного кода, скорость расчётов). Для данного случая тип исходных данных лучше назначить Byte, в крайнем случае Unsigned Integer. И вообще старайтесь не использовать дробных чисел там, где это не нужно.

Последний раз редактировалось omercury; 18.02.2011 в 12:05.
omercury вне форума  
Непрочитано 18.02.2011, 12:02  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Сообщение от 7Fantomas7 Посмотреть сообщение
А про chr где почитать? Я к своему стыду не знаю что это.
chr это просто три буквы, три знака в ASCII таблице.
Если эти три буквы будут написаны в программе, после названия типа, тогда это было бы название переменной.
В паскале это функция перевода типа byte в тип char.
А если перед тем как писать поэму, вы прочитали бы уже о строках, то и не задавали бы здесь таких вопросов.
CodeNameHawk вне форума  
Непрочитано 18.02.2011, 12:22  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

omercury,
Цитата:
Всё из-за того, что используются разные типы данных.
Из за того.
Я динамичку делал не единожды. В принципе вы это видели.
Просто надоело каждый раз под какието приложения подгонять динамичку да еще и под какиенибудь события выводить на самисегментник символы которые не цифры, которые то и буквами назвать сложно. Но выводить нужно, вот и решил упростить себе жизнь, чтоб сделать 1 раз и больше не мучится. А жизнь не очень то упрощается.
7Fantomas7 вне форума  
Непрочитано 18.02.2011, 12:38  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Так ведь динамичка и преобразования совсем разные функции. Собрать просто матеметику в один файл, динамичку и другие аппаратные функции в другой и подключать их к проекту. Си не асм - лишнего из библиотеки не возьмёт. Можно даже (один раз -то) с ассемблерными вставками написать для быстродействия. А потом в хидере переназначил переменные - и пользуй на здоровье.
omercury вне форума  
Непрочитано 18.02.2011, 13:00  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Посмотрел соседнею ветку и нашел, что нужную вам функцию человек уже написал
http://elm-chan.org/fsw/strf/xprintf.html (Не поддерживает float)

Последний раз редактировалось CodeNameHawk; 18.02.2011 в 13:21.
CodeNameHawk вне форума  
Непрочитано 18.02.2011, 14:05  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Разложить число на символы ASCII

Сообщение от 7Fantomas7 Посмотреть сообщение
Ну хорошо пусть звучит так.
Спасибо, что разрешили... Только это Вы должны были его так задать.

Цитата:
Не спрашивал вовсе, где вы это нашли?
В первом же посте. Просто не решился тот бред переводить.

Цитата:
Хоть один совет подкиньте. Дельный. А то умничать и жаловаться на неправильный вопрос каждый может.
Не дерзи. С какого я Вам помогать буду? Читал Ваши предыдущие посты - что в лоб, что по лбу. Один хрен: положи в рот, да разжуй. Читать ничего не желаем, думать над данными советами - тоже. Вопросы задаете, как первоклашка: хочу, чтобы вот, и чтобы вот так. (А в кругу друзей-то небось бахвальство: я программист!)

Так что совет я даю, но не Вам, а тем кто тратит здесь на Вас свое время.
testerplus вне форума  
Эти 2 пользователя(ей) сказали Спасибо testerplus за это сообщение:
CodeNameHawk (18.02.2011), st_1 (18.02.2011)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подбираемся к DX Kabron Микроконтроллеры, АЦП, память и т.д 455 27.10.2014 22:41
Как в CVAVR вывести 3х-значное число на порты? code-by Микроконтроллеры, АЦП, память и т.д 26 23.03.2010 23:23
Число витков трансформатора для развязки звуковых частот Laksus Аудиотехника 6 07.07.2009 15:49


Часовой пояс GMT +4, время: 03:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.