Хотелки:
Спойлер
Аналоговый осциллограф С1-112, С1-118, другиене/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic
Ты с какого города?Roflcopter писал(а):Привет всем!
У меня проблема. Я собрал схему, но нет синхронизаций. 2 и 3 ножку ЛПТ подсоединил.
Подсоветуйте что мне делать?
Программа написана в VB6. Для работы с LPT портом именно этой программы нужен установленный dlportio.dll - он устанавливается с помощью port95nt.exeMORDA писал(а):Если я чем-то могу помочь в разработке спектрального аналайзера - скажите, время есть, но нет знаний для написания программ, в которых нужно управление лтп портом=(
погуглю пока, может что-то получится...
И еще, я немогу разобраться, как открыть Matrix16x16_v.1.1? Через VB? неполучается=(((
Присылайте, выложу на постоянную страницу девайса - http://lightportal.at.ua/publ/videoehkr ... a/8-1-0-11Vovan91 писал(а):Если кому нужны фотки - скину, и кстати, есть документация - делал по ней курсовой, если кому надо - пишите!
Я смотрел эту статью, но тут управление через СОМ, и плюс ко всему этому микроконтроллер...Radan писал(а):За основу можно взять вот этот проект - http://lightportal.at.ua/publ/kombiniro ... y/11-1-0-9Там спектроанализатор на этой библиотеке и в VB6, кстати, автор -тот же.
Я не зря этот проект привёл в пример. Там как раз можно взять код спектро анализатора.MORDA писал(а):Я смотрел эту статью, но тут управление через СОМ, и плюс ко всему этому микроконтроллер...Radan писал(а):За основу можно взять вот этот проект - http://lightportal.at.ua/publ/kombiniro ... y/11-1-0-9Там спектроанализатор на этой библиотеке и в VB6, кстати, автор -тот же.
Постараюсь разобраться...
З.ы. Позже пришлю, скрины и документы
Код: Выделить всё
Итак, по порядку.
матрица имеет размерность 16х16=256
2 регистра по 8 бит -R1 и R2.
Для вывода картинки нужно последовательно 16 раз (For z = 0 To 15) передать данные через параллельный порт в эти регистры
sprite - это номер текущей картинки - спрайт. Он изменяется от 0 до максимально возможного для выбранного эффекта.
В каждом шаге цикла For z = 0 To 15 мы должны особым образом подготовить данные для регистров.
Для начала мы их обнуляем - R1 = 0 R2 = 0
Затем организуем новый цикл For G = 0 To 7
Данные о спрайтах хранятся в одномерном массиве dop() в виде последовательности 0 и 1
На каждый спрайт 256 байт
Общая длина массива - 256 * количество спрайтов для конкретного эффекта.
J = (15 - z) * 16 + (sprite * 256) + G
В этой строке мы высчитываем элемент массива, соответствующий данному спрайту для каждого светодиода матрицы
Такая достаточно сложная формула обусловлена тем, что для каждой последовательности из одномерного массива нужно получить 16 значений для двух регистров.
If G = 0 Then T = 1
If G = 1 Then T = 2
If G = 2 Then T = 4
If G = 3 Then T = 8
If G = 4 Then T = 16
If G = 5 Then T = 32
If G = 6 Then T = 64
If G = 7 Then T = 128
Этот код определяет вес для битовой последовательности регистров
If dop(J - 256) = 1 Then R1 = R1 + T
If dop(J - 248) = 1 Then R2 = R2 + T
А здесь за 8 шагов цикла подсчитываем данные для регистров
Nulreg - вызов подпрограммы обнуления регистров
получается, идет програмный опрос матрицы, что сейчас горит, а что нет???J = (15 - z) * 16 + (sprite * 256) + G
В этой строке мы высчитываем элемент массива, соответствующий данному спрайту для каждого светодиода матрицы
но как я непойму....If dop(J - 256) = 1 Then R1 = R1 + T
If dop(J - 248) = 1 Then R2 = R2 + T
Radan писал(а): Когда наступит такое понимание, код написать станет очень легко.