Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Драйвер MAX7219 для светодиодных матриц 1088


Драйвер MAX7219 для светодиодных матриц 1088

Сообщений 1 страница 7 из 7

1

Саша, я бы вывод строк оформлял по аналогии вот с этими исходниками: 16x8 LED dot matrix with MAX7219 module.

Как всегда использую Notepad++ для сборки и отладки проекта:

http://img.radiokot.ru/files/4453/thumbnail/92gd1ycqx.png

Вот набросок проекта на ATmega16 на бейсике, который я сделал по аналогии. Он пока вообще не работает, но компилируется. Нужно заставить сначала вывести хоть что-то на одну из матриц.

Архив: DM1088_20140129.zip (~60 Мб)

Там в архиве есть исходники из приведённой выше ссылки (в папке doc). Интерфейс модуля DotMatrix предназначен для вывода спрайтов (поточечных изображений) на набор матричных модулей разной длины. Я раньше с MAX7219 не работал, поэтому трудно сразу завести примеры. У меня где-то есть ошибки как при портировании исходников, так и, возможно, в согласовании их со схемой в Proteus. Я выбрал ATmega16, т.к. думал, что проблема в мк, когда возникали ошибки компиляции. На самом деле нужно было более полно настраивать программный SPI, указав вывод для Din. Сейчас всё компилируется, но не работает.

Постепенно буду этот пример дорабатывать. Для работы с изображением используется буфер, где хранятся так называемые спрайты (кусочки изображений). Спрайт состоит из указания размеров первыми двумя цифрами и столбцами с данными. Набор данных честно взят из исходников проекта для Ардуины (нужно будет потом переделать таблицу для русского языка).

0

2

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

0

3

Новая версия проекта: DM1088_20140130. Индикация работает, теперь нужно доработать функции рисования на индикаторе. Я сделал несколько тестов для примера, но код ещё нужно дорабатывать.

Что касается красивого отображения бегущей строки, то так просто её не сделать. Выводы индикаторов расположены так, что соединить вместе модули не получится. А программно реализовывать функцию перевёртывая накладно, т.е. max7219 пишет по столбцам только.

+1

4

Работает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

http://s8.uploads.ru/t/fP4Sy.jpg http://s9.uploads.ru/t/aKVGg.jpg



А почему так?:

' Строб записи.
Sub Dotmatrix_writestrobe

   ' Формируем короткий строб записи.
    Set Dm_load

    $asm
        NOP
    $end Asm

    Reset Dm_load

End Sub

а не так?:

' Строб записи.
Sub Dotmatrix_writestrobe

   ' Формируем короткий строб записи.
    Set Dm_load
    NOP
    Reset Dm_load

End Sub

Отредактировано sasha_1973 (2014-01-31 06:42:24)

0

5

Да, тоже вариант. Саша, убери в настройках IDE переформатирование кода. Среда портит моё форматирование и имена переменных (Enviromnent\Editor, две галочки напротив слов Reformat).

Там в коде ещё нужно поколдовать с выводом точки, рисует на одну строку ниже, чем должно быть. Потом нужно переделать кодовую страницу и разрисовать русский алфавит. Для этого можно воспользоваться поточечным изображением символов, взятых из драйвера HD44780. Там они тоже имеют размер 5х8. Порядок символов в таблице нужно сделать в соотв-вии с кодовой страницей CP-1251. В оригинальном коде первые 32 символа пропускаются. Наверное, чтобы места сэкономить. Эта поправка потом учитывается в DotMatrix_PutChar().

Ещё нужно доработать код, чтобы его поведение зависело от количества матричных индикаторов. Сейчас у меня жёстко привязано к 5 шт, хотя при инициализации нужно указывать их количество.
В общем, работы много ещё.

0

6

Саша, могу дать задание по созданию русского шрифта для вывода на эти матричные индикаторы. Ниже показана картинка, как это выглядит на примере заглавной буквы "А".

http://img.radiokot.ru/files/4453/thumbnail/94joojklb.png

Вот буква "А" в псевдографике, созданная по картинке:

Код:
'0 .***.
'1 *...*
'2 *...*
'3 *...*
'4 *****
'5 *...*
'6 *...*
'7 .....

http://s8.uploads.ru/t/5yvut.jpg

Кодируем её в код:

Код:
Data 5, 8, &B01111110, &B00010001, &B00010001, &B00010001, &B01111110 ' А

Это данные спрайта (маленькой картинки из точек): ширина, высота, столбцы данных. "Верх" буквы у данных справа, судя по уже имеющейся и работающей таблице.

Я тебе пришлю текстовой файл с заготовкой таблицы, нужно будет её по аналогии продолжить. Комментарии справа соответствуют порядку букв в верхней части CP1251. Нужно брать букву по порядку, найти её вид на картинке выше (русскую или латинскую), нарисовать в псевдографике, а потом закодировать столбцами. Сможешь?

Отредактировано uni (2014-01-31 17:57:02)

0

7

Доделали? исходниками можете поделиться?

0


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Драйвер MAX7219 для светодиодных матриц 1088