letters это двумерный массив, содержащий массивы, изображающие русский алфавит. msg_out это двумерный массив, который должен наполняться символами, подлежащими выводу на лед матрицу. Там суть во в чем. В будущем хочу получать строку по юарт. Затем эту строку преобразовать в коды аски и соотнеся эти коды с массивами, изображающими символ на лед матрице 8*8, формировать строку для вывода на эту самую матрицу. Короче, получил букву "п", преобразовал в код аски, записал в msg_out массив, который эту букву отображает, вывел этот массив на лед матрицу.

Комментарии: 27

  1. Serge

    Такой вопрос: а нельзя ли отправлять по уарту то, что должно быть после преобразования? Я стараюсь по максимуму отдать на "толстую" сторону канала связи. Ещё есть способ экономии памяти: работаем не с буквами, а с глифами, их составляющими.

    • Vga

      Я напротив, предпочитаю отправлять по медленному каналу минимум. С генерацией битовой картинки из массива текста справлялись компьютеры, значительно более медленные чем нынешние мк, причем по 50-60 раз в секунду

      • Serge

        Согласен, но вот такая вкусовщина и привычка после нагруженного почти до упора МК и слов заказчика "а давайте добавим...")

        • Vga

          Вообще, не стоит отдавать этот вопрос на откуп привычке. Стоит решить в каждом конкретном случае как будет оптимальнее

          • Serge

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

  2. Jirafivanich

    Memcpy(res, letters[(c-192)*8-1], 8) И letters сделать одномерным Хотя, по идее, и двумерный массив memcpy сожрать должен

    • Serge

      Он в памяти и так одномерный, ты просто адресацию немного поправил)

      • Jirafivanich

        А, ну... Ок

        • Serge

          Вот хорошие шпоры по сквозной индексации: https://stackoverflow.com/questions/789913/array-offset-calculations-in-multi-dimensional-array-column-vs-row-major https://en.m.wikipedia.org/wiki/Row-_and_column-major_order В порядке бреда: насколько часто может моргать (изменять интенсивность свечения не менее, чем на 50% от максимума)? Пытаюсь прикинуть возможную пропускную способность самопального светового телеграфа.

          • Saw

            кто будет моргать?

            • Serge

              Диод. Хочу попробовать lwip к гелиографу прикрутить)

              • Saw

                светодиодные модули же на 1 Гбит пашут… правда по оптоволокну.

                • Serge

                  А из недорогого что есть шустрого, чтоб купить для проверки идеи? Даже 115200 бод за глаза, тащемта.

                  • Saw

                    а среда передачи какая? оптический кабель, воздух…

                    • Serge

                      Воздух, ненаправленное некогерентное излучение видимого спектра Аналог access point хочу попробовать изобразить

                  • Saw

                    в детстве делал из журнала такую фигню, на 200м звук микрофона вечером норм передавало. Но на 115к…. сомневаюсь. Но это 3-4 кГц было.

                  • Vga

                    На 115200 можно любым диодом моргать. Специальные нужны на сотнях гигабит Ну и на гигабите вероятно тоже, но в целом моргать обычный диодик может весьма шустро

                    • Anonim

                      Щас, чтоб поморгать, пиплам надо уже 2 ядра…

                    • Anonim

                      параллельно светодиодику поставить резистор .. сопротивление подобрать .. по наилучшим фронтам модуляции

                  • Stanislav

                    В конце 90-х делали связь на лазерных указках на ком-порту. Потом это вылилось в 10МБит (ronja laser link, если не перепутал).

Не нашли ответ?

Вам также может быть интересно