Смещение данных в массиве и добавление данных
- Войдите на сайт для отправки комментариев
Чт, 25/06/2020 - 12:00
Помогите пожалуйста.
Вывожу на дисплей значение, как правильно сделать чтобы сдвинуть значение на 1 записать 0x00 для заполнения пустотой первого разряда диспелея
if(SetHotAirT<100){itoa(SetHotAirT,buf[i<<1],10);} //если значение менее 100градусов else itoa(SetHotAirT,buf,10); //значение и более градусов lcd_PutStr16x12(buf,50,25);
4 раза написал - а в чем суть проблемы - все равно не понятно. Не умеете вывести ноль на дисплей? Или не знаете как вывести в конкретную позицию? или еще что...
http://www.cplusplus.com/reference/cstdio/snprintf/
http://www.cplusplus.com/reference/cstdio/printf/
А что это й Вас во втором параметре itoa в первой строке?
Вы не могли бы выкладывать код полностью?
Это я пытался сдвинуть данные но для массивов такой метод не катит.
Это и есть код. типы данных char buf[16]; int SetHotAirT;
В SetHotAirT попадает значение с задания энкодера от 50 до 450 градусов
вот мне и нужно чтобы в buf записывались значения если менее 100градусов в первый элемент масива 0x00 пустое значение, а в следующие два значения от 50 до 99градусов.
Пробовал я sprintf изначально, но почему то у меня начинает дисплей зависать и появлятся черный фон (дисплей работает по SPI).
разберитесь со строками, учебник почитайте, в конце концов. Весь ваш код - чушь полная.
Например. чтобы строка начиналась с "пустого места" - в ее первую позицию надо записывать не ноль (0х00), а код символа пробела
И подумайте, возможно вам будет проще не сдвигать символы в массиве - а просто нарисовать строчку на экране чуть правее?
Пробовал я sprintf изначально, но почему то у меня начинает дисплей зависать
да все потому же - что вы не понимаете, что делаете. Я нашел в инете ваш вопрос про "зависает LCD дисплей", оно?
https://www.cyberforum.ru/arduino/thread2571760.html
посмотрите, сколько вы места отводите в буфере ? - 3 символа? так как же программе не виснуть. если вы потом в этот буфер запихиваете строчки аж до 6-7 символов?
Вообще, с января можно было учебник Кернигана-ричи наизусть выучить, а вы все ходите по форумам с таким же бредовым кодом и такими же детскими вопросами
Зачем мне учить весь учебник? если мне нужно всего лишь решить одну задачу.
Зачем мне учить весь учебник? если мне нужно всего лишь решить одну задачу.
ну хотя бы затем. чтобы не сидеть над одной строчкой по полгода.
Думаю, на этом ветку можно закрыть. По правилам форума здесь помогают тем, кто хочет чему-то научится сам. Кому "нужно решить одну задачу" - заказывают работу в платном разделе.
Да конечно можно закрывать.
ardo. вы с 16-года "решаете одну задачу" - "как правильно вывести число на индикатор".
http://arduino.ru/forum/programmirovanie/arduinods18b20max7219-nuzhno-razobratsya
Не надоело дурнем ходить? Неужели за 3 года так и не прищло понимание. что программирование "методом тыка" не освоишь?
Давай без оскорблений! Сам по форумам шаришся, скажи ещё что сам никогда ничего ни у кого не спрашивал. Моё хобби электроника , с программированием практически не сталкиваюсь, попросил людей помочь, и тут уже 20 постов не по существу.
попросил людей помочь, и тут уже 20 постов не по существу.
как тебе помочь, когда ты ответов не понимаешь
Ответы в сообщении #2 - разбирайся
Я не просто так спросил за смещение и записи в первый элемент массива, потому что при смещении через функцию дисплея значение остается в памяти дисплея, и чтобы его отчистить нужно новое значение в моем случае пустое(пробел).
и к чему вы тут приводите массив фонта? То. что в фонте пустые пиксели кодируются нулем - не имеет ровно никакого отношения к вашей проблеме. Это снова показывает, как мало вы понимаете в вопросе.
Подумайте хотя бы о том, что в массиве фонта каждое значение означает отдельный пиксель, а вам нужно очистить место целого символа...
Повторяю, вам нужно записывать в первую позицию вашего массива пробел. а не ноль. И, на всякий случай. может вы и этого не знаете - код пробела не равен нулю. С нулем гарантировано работать не будет
Зачем мне учить весь учебник? если мне нужно всего лишь решить одну задачу.
Зачем мне, ради тарелки холодца, всего кабанчика колоть?! (с) ;))))) Люблю таких!
От sprintf будет виснуть, само-собой. Я же дал ссылку на snprintf()