Бегущая строка

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#21

Сообщение Lisica » 26.12.2017{, 19:28}

Labu55 писал(а):А в мониторе порта с учетом того, что Вы отправляете, всё в норме
разве это норма что символы идут справа налево? Должны слева направо...
Последний раз редактировалось Lisica 26.12.2017{, 19:28}, всего редактировалось 1 раз.

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#22

Сообщение Labu55 » 27.12.2017{, 16:27}

Lisica писал(а):разве это норма
Уважаемый Lisica. Вы случайно не пробовали в супермаркете засунуть в пакет на 5кг. товара весом 10?  Надеюсь с этим у Вас всё в порядке. Так почему в регистр данных HD44780, предназначенный на обработку 2х16 символов должны залезть Ваши (                  012345678910ryrnhtttd6 г ар рк6ш6347877856444тгь6гььннроаоечрerteayrnu65744hme6mu6u4y)+ данные счетчика. Неужели вывод в ком порт Вас не натолкнул ни на какие мысли по этому поводу? 
Lisica писал(а):разве это норма
Вы всё ещё нуждаетесь в ответе на этот вопрос?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Бегущая строка

#23

Сообщение pan » 27.12.2017{, 16:37}

ну по даташиту влазит вот сколько
Изображение

смотрите на адреса ячеек.

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#24

Сообщение Labu55 » 27.12.2017{, 17:59}

pan писал(а):ну по даташиту
Ну да 80х8, и ещё 40-битный регистр сдвига и I2C шина до индикатора, и реку рвёт в самом тонком месте. Просто мне кажется что у человека готовое решение его проблемы уже было в 9-м сообщении а дальше... спортивный интерес переключился на второй проект, потом третий с "данными- 101символ (кириллица по 2байта)" которые не может выводить.  Извините если ошибаюсь да и помочь больше ничем не могу. Всем удачи.
Последний раз редактировалось Labu55 27.12.2017{, 18:48}, всего редактировалось 1 раз.

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#25

Сообщение Lisica » 27.12.2017{, 19:51}

Labu55 писал(а):должны залезть Ваши
Предел 16 - значит должно 16 и не более. 16 ведь влезут да? Отрежте сколько нужно, но, всё равно не будит работать правидльно.
Или Вы думаете, что я именно ту строку буду пихать?
Не хотите понять меня просто...
А я объяснял... Речь ведь не о том сколько влезет в дисплей, а о неправильности работы блока выделения подстроки.
Читайте внимательно выше, если не поймёте, всё равно. то переспросите. а лучше в скайпе, голосом.

Добавлено (27.12.2017, 19:51)
---------------------------------------------
Labu55 писал(а):спортивный интерес переключился на второй проект, потом третий с "данными- 101символ
Это не проэкты а макеты, в которых блок выделения должен выделять 16 символов, будь там хоть и пятьсот в строке....
Я просто пытался Вам объяснить чего я хочу, но вы читаете по диагонали. наверное.
Последний раз редактировалось Lisica 27.12.2017{, 19:52}, всего редактировалось 1 раз.

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#26

Сообщение Labu55 » 27.12.2017{, 22:04}

Уважаемый Lisica.   Поймите, действительно трудно понять человека, который пытаясь доказать свою правоту перепрыгивает с одной задачи на другую. Что-же давайте разложим по полочкам. 
Lisica писал(а):неправильности работы блока выделения подстроки
В блоке одна строка кода _GSFS1 = (String("")).substring(0); Исправте как должно быть.
Lisica писал(а):Предел 16 - значит должно 16
Правильно до того момента пока у Вас символы ANCII.
Lisica писал(а):но вы читаете по диагонали
А Вы 18 сообщение как читали. Ваш проект(макет) - всё нормально работает у меня. А своё как
Lisica писал(а):Ничего не меняйте и проверьте.Потом замените в блоке вывода подстроки константу на "до конца"
Я что-то сделал не по Вашему? И сколько по-Вашему в строке символов "до конца", не от 1 до 120? Или ответ, что в монитор порта выводятся все данные правильно противоречат скрину? Если противоречат- научите монитор читать киррилицу. 
Lisica писал(а):16 символов, будь там хоть и пятьсот в строке
А Вы взаправду считаете что остальные 500-16 ни коим образом не используют вычислительные ресурсы, или шины данных неисчерпаемой ширины и скорости?
Lisica писал(а):разве это норма что символы идут справа налево
Как приходят так и идут. Включите счётчик на уменьшение, пойдут как Вы хотите. 

Извините что каждым своим ответом заставляю Вас подумать и прийти к ответу самостоятельно. Ошибаются в этом мире все, а вот признают свои ошибки единицы. Я тоже не претендую на абсолютную истину в своих словах и пытаюсь Вас понять. По прежнему желаю Вам удачи и приятных праздников.

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#27

Сообщение Lisica » 28.12.2017{, 00:44}

Уважаемый Labu55
Labu55 писал(а):Поймите, действительно трудно понять человека, который пытаясь доказать свою правоту перепрыгивает с одной задачи на другую.
Я не доказываю, а констатирую факт. и не перепрыгиваю, ето один и тот же проэктик, только с разными приправами.
Просьба таки перечитать вс это сообщение.
Берём проэкт из самого первого сообщения, дополняем выводом в компорт.
загружаем в ардуину и смотрим.
На дисплее печатаются 16 пробелов 16 раз потом идут не пробелы.


Вот и возникает вопрос - почему, ведь в Блоке вывода подстроки начало
строки задаётся генератором то есть 1,2,3........ и так далее. сброс по
окончании просто сейчас не нужен.
Должна на выходе этого блока быть строка:
16 пробелов
15 пробелов и 1
14 пробелов и 12
и так далее.
на дисплее же и в ком порту пропечатываются(повторюсь) 16 пробелов 16 раз
и не пробелы выводятся справа налево.

Теперь, убираем пробелы в строке перед не пробелами, компилируем, загружаем. смотрим.


Упс, строка "лезет" как и надо, то есть
1234567891011121
2345678910111213
3456789101112131
Всё как задумывалось - справа на лево.

И заметте. в обоих случаях общая длина строки больше 16ти знаков.

Теперь вопрос - на что так влияют пробелы, что блок начинает с ума сходить?
Попробовал подставить не 16, а 5 пробелов перед знаками, то, выводит 21 пробел. почему то...
В блоке одна строка кода _GSFS1 = (String("")).substring(0); Исправте как должно быть.
Я в кодах не силён, так что констатирую только факты неправильной работы.
Вложения
7464242.jpg
8914006.jpg
Последний раз редактировалось Lisica 28.12.2017{, 00:48}, всего редактировалось 1 раз.

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#28

Сообщение Labu55 » 28.12.2017{, 05:50}

Lisica
Ваша настойчивость забрала у меня ночь сна. Проверил Ваш первый проект- результат отличается от Вашего. В частности этого нету, хотя это уже не важно.
На дисплее печатаются 16 пробелов 16 раз
Дальше взял предложенный Вам мой второй вариант, как образец, сделал свой блок для получения подстроки, чтобы проверить наверняка  Ваше утверждение о глючности штатного и заново собрал проект. Протестировал. Потом тоже самое проделал в версии 2.5.1. Более подробно в подготовленном отчёте. Поздравляю ошибка есть 100%, но вот сказать точно где возникают ошибки, в программе или при компиляции не могу пока. Уже не хватает сил для проверки генерируемого кода, но по логике- раз различаются результаты в разных версиях FLProg, то тут и гвоздям быть. Тут не помешала бы помощь опытных ребят, чтоб не тревожить раньше времени Ув. Автора. Всё что необходимо собрал в архиве, подробные комментарии всего по месту. Благодарю Вас за внимательность и целеустремлённость.
Вложения
FLPforum.rar
(38.96 КБ) 50 скачиваний

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#29

Сообщение Lisica » 28.12.2017{, 09:47}

Labu55 писал(а):Поздравляю
Ну наконец то подружились Фома с Ерёмой... Изображение 
А как Вы запихнули результаты ком порта в текстовый файл? Это так, на будущее.
И этот же блок выделения подстроки вставил в анализатор громкости, то
работает чётко, но там нет пробелов, только прямоугольники Малевича.

Добавлено (28.12.2017, 09:47)
---------------------------------------------
Labu55 писал(а):программе или при компиляции
Просмотреть, в ide код и выудить что там не так.
Может программа вставляет в ide пробелы в какой то заумной кодировке,
может библиотека i2c как то связана с этим.
может библиотека самого дисплея.......

ЗЫ. Иногда, после прошивки дуины, на дисплей выводяятся крякозяблики. Ресет не помогает,  только перевтык питания, это хоть из за чего?

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#30

Сообщение Labu55 » 28.12.2017{, 12:13}

Lisica писал(а):подружились Фома с Ерёмой
но Вы то, что-то поняли из всего диалога кроме желаемого, того что ошибка действительно есть? Очень надеюсь, что -да. И то что, для нахождения скрытой ошибки нужно устранить явные, как-то счётчик до бесконечности, некорректные данные (как по длинне так и по содержимому) и не менять начальные условия (задачи). Поведенческая психология (бихевиоризм) у большинства людей одинаковая - ухватиться за явное и считать оппонента объектом с аналогичным багажем навыков, знаний и  мышлением, если false вначале, то true дальше теряет значение. Меня кое-чему научила эта ситуация. Эх пойду- ка я проверять польз. блок ТМ1638 с похожим алгоритмом бегущей строки, который уже 3 месяца гуляет (думал успешно) по людях. Подозреваю что в нашей ситуации признак окончания строки (NULL) принимается за пробел, или присходит наоборот.
как Вы запихнули результаты ком порта в текстовый
 Обычным Copy-Past_ом. ПраваяКнопкаМыши на поле.

СпойлерПоказать

Lisica писал(а):Иногда, после прошивки дуины, на дисплей выводяятся крякозяблики.
HD44780 не получила команду на очистку (что должно происходить при инициализации) - такой Блок 1602.
Lisica писал(а):Я в кодах не силён
Попробуйте с насущного, необходимого, елементарного  - ссылка.

Добавлено (28.12.2017, 12:13)
---------------------------------------------
Lisica писал(а):прямоугольники Малевича
Непредусмотреные символы (кириллица?).
Вложения
2912944.png
Последний раз редактировалось Labu55 28.12.2017{, 12:55}, всего редактировалось 1 раз.

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#31

Сообщение Lisica » 28.12.2017{, 12:52}

Labu55 писал(а):Непредусмотреные символы (кириллица?).
Почему непредусмотренные? Самый последний символ в таблице, вывожу как \377
Labu55 писал(а):но Вы то, что-то поняли из всего диалога кроме желаемого, того что ошибка действительно есть?
Это я понял.
Labu55 писал(а):для нахождения скрытой ошибки нужно устранить явные
Тоже в курсе.
И не успел сказать ещё утром спасибо, что таки не покинули меня в одиночестве, а прислушались к моему нытью.
ЗЫ, кое что в личку написал.

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#32

Сообщение Labu55 » 28.12.2017{, 14:15}

Lisica писал(а):не успел сказать
Вам свои "спасибо" я уже раздал, а теперь "ДОБРО ПОЖАЛОВАТЬ В МИР FLPROG", надеюсь мы все здесь надолго. Сил и вдохновения нашему Уважаемому Автору.

Добавлено (28.12.2017, 14:15)
---------------------------------------------
Lisica писал(а):Почему непредусмотренные? Самый последний символ в таблице, вывожу как \377
символы выводятся переменной типа unsigned char (макс. значение 255 с учётом 0). Протоколом передачи передаются порядковые номера символов в таблице ANCII. Кириллица, японица, китаеца, арабика, гречиха (шучу в названиях раскладок) подменяются на уровне знакогенератора (представление в виде матрицы точек, или битовых массивов для 7-ми сегментного дисплеев)для тех же латинских символов. Очень часто в Ардуино пренебрегают беззнаковыми типами данных и загоняют символы строки в знаковые char, о чем очель ласково предупреждает компилятор. Почему ласково? Потому, что компилирует правильно но говорит что другие компиляторы могут это сделать неправильно или что ему тоже может взбрести что-то в голову и он не отвечае за результат. С кириллистическими индикаторами не работал, потому мне немного знаком только метод вышеописанный выше (на уровне библиотек или подмены). Как-то так. Если кто-то увидел мои заблуждения- искренне прошу вывести бред на чистую воду. Я учусь.
Последний раз редактировалось Labu55 28.12.2017{, 14:29}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3999
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 571
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Бегущая строка

#33

Сообщение Sancho » 28.12.2017{, 14:34}

Каждому символу соответствует ОДИН байт.
Отображаемый символ зависит от таблицы, зашитой в пзу индикатора.
Алфавиты(в пзу) могут быть абсолютно разные( как написано в посте выше).
Плюс несколько дополнительных, пользовательских, символов.
P.S. datasheet наше всё.
P.P.S. Недешёвый дисплей с ДВУМЯ страницами кодов знакогенератора.
Последний раз редактировалось Sancho 28.12.2017{, 15:13}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Бегущая строка

#34

Сообщение Labu55 » 28.12.2017{, 15:01}

Sancho писал(а):от таблицы,
Ох, уж эти Яндексы. Пришлось срочно смотаться в Америку, что-бы посмотреть, и вернуться. Спасибо поправили по делу, хоть учился в 90-х, но материал наверное излагали с 70-х, а может бэд секторы в памяти   , или приобретённая зависимость от китайских CGROMов, ну и попытка унифицировать ответ и для монитора порта(терминальной программы).
А вот и вторая часть марлезонского балета

таблицы ANCIIПоказать
Кто-же, в своём уме будет засовывать ещё 127 байт в таблицы ANCII to 7-segData (Etc) ради нескольких символов кириллицы? Вот и извращаются, то в оперативку помещают, а чаще подменяют неиспользуемыми с первой части.
Вложения
9167347.png
5172350.png
Последний раз редактировалось Labu55 28.12.2017{, 15:57}, всего редактировалось 1 раз.

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#35

Сообщение Lisica » 28.12.2017{, 16:55}

Labu55 писал(а):А вот и вторая часть
ага
, в этих таблицах символ - квадрат малевича и 178 и 219, я нашёл таблицу, где 255
но у меня оно вывелось только тогда, когда 255 перевёл в восмиричный код 377
а 255 выводило как иероглиф, похожий на маленькую еденицу.
Во, идея, вывести с генератора во вторую строку числа, а в первую знак, соответствующему этому числу, и сравнить с таблицами.

Добавлено (28.12.2017, 16:55)
---------------------------------------------
Ну вот.. Теперь иде ругается на строку сложения со слешем...
_gtv1 = ((String("\")) + ((String(_count1P, DEC))));

Что я опять не так делаю?
Вложения
test1.flp
(86.54 КБ) 45 скачиваний
Последний раз редактировалось Lisica 28.12.2017{, 16:57}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3999
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 571
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Бегущая строка

#36

Сообщение Sancho » 28.12.2017{, 17:12}

Lisica писал(а):Ну вот.. Теперь иде ругается на строку сложения со слешем...
Слэш -  "/".
"\" - обратный слэш...

Добавлено (28.12.2017, 17:12)
---------------------------------------------
Просто замени и будет счастье
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#37

Сообщение Lisica » 28.12.2017{, 17:18}

Sancho писал(а):Просто замени и будет счастье
не будит... коды символов вводятся с обратным слешем "\"
"\1\2\3\4........" и т д и т п

на дисплее с прямым слешем выводятся /1 /2.........
но не символы из таблицы.,
Вложения
ntcn2.flp
(42.84 КБ) 44 скачивания
Последний раз редактировалось Lisica 28.12.2017{, 17:21}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3999
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 571
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Бегущая строка

#38

Сообщение Sancho » 28.12.2017{, 17:35}

Lisica писал(а):не будит... коды символов вводятся с обратным слешем "\"
Теперь идею уловил, но думаю, просто нужно посмотреть на марку чипа на плате или библиотеку немного подправить, чтобы понять что-к чему.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
cmept-27
Сержант
Сообщения: 253
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 67

Бегущая строка

#39

Сообщение cmept-27 » 28.12.2017{, 17:47}

Делал я блок бегущая строка . Длина строки не имела значения. Помню что там где не справлялся  "Блок получения подстроки" пришлось добавить много логики. Получилось слишком громоздко. Поищу и если найду выложу.
Последний раз редактировалось cmept-27 28.12.2017{, 18:17}, всего редактировалось 1 раз.
OK

Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Бегущая строка

#40

Сообщение Lisica » 28.12.2017{, 18:26}

Sancho писал(а):или библиотеку немного подправить, чтобы понять что-к чему.
А иде может ругаться на сложение с обратным  слешем из за библиотеки?
Sancho писал(а):на марку чипа на плате
Ага... но на "каплях" не написано...

Ответить

Вернуться в «Спросить у знатоков»