Тетрис для АВР+светоматрица. На Ассемблере!

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК писал(а):это нагрузит сам "процессор", который считатет игру или время и т.д., а ему еще и выводить постоянно на экран
Вы же тетрис делаете, а не real time стрелялку с рендером миллионов полигонов и просчётом физики. Не загрузите Вы МК просчётом тетриса\змейки\цветомузыки. Тем более на Ассемблере.

Механизм ведь несложный:
1. Посчитали
2. Вывели в регистры
3. Защёлкнули
4. Вернулись на п.1

Вот и всё обновление картинки.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

СКАЗОЧНИК писал(а):...загрузили в память "видеокарты" картинку и выводим ее сколько угодно (тупо обновляем)....
Смысл?
Вывод делайте только по условию (когда изменилась "картинка").
Так будет проще....
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

Все равно не доходит до меня... Если у меня регистры стоят на 20 строках, а 10 столбцов управляются этими драйверами светодиодов.
Т.е. одномоментно горит только одна строка из 20, причем каждый светодиод своим цветом, который задали драйверами, следом другая строка и т.д. С частотой обновления картинки примерно 60 Гц. (По крайней мере, так задумал). :dont_know:
Станислав
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК писал(а):Если у меня регистры стоят на 20 строках, а 10 столбцов управляются этими драйверами светодиодов.
Т.е. одномоментно горит только одна строка из 20, причем каждый светодиод своим цветом, который задали драйверами, следом другая строка и т.д. С частотой обновления картинки примерно 60 Гц.
Мне сложно что-либо сказать, так как сейчас моя очередь не понимать:

- почему регистры на строках, а на столбцах TLC5940? Почему не наоборот? Почему не везде только регистры? Почему не везде только TLC5940?
- почему одномоментно горит только одна строка, а не вся матрица? Динамическая индикация? Снижение энергопотребления?
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

:))) :))) :))) :oops:
Простите. Я всех похоже путаю...
- Индикация динамическая.
- Все на регистрах можно сделать, но тогда без ШИМ...
- Почему именно на столбцах TLC5940, а не на строках?, потому что у меня их всего две штуки (три, если быть честным). А для строк получится надо 4 шутки.
- Диоды РГБ, собраны на платах, где у них общий анод.
- Замысел был управлять изначально регистрами и УЛН2003 строками, а столбцы (их всего 10 анодов) включать через транзисторы с МК.

З.Ы. Позже все изменилось. И теперь мне проще стало загонять НОЛЬ в регистры и двигать его, тем самым чередуя строки, а каждую новую строку загонять через столбцы, на которых висят TLC5940 с ШИМ. Получается развертка всего кадра = 20 строкам, которые постоянно обновляются... :dont_know:

Как-то так.
Станислав
Реклама
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

СКАЗОЧНИК писал(а):....Получается развертка всего кадра = 20 строкам, которые постоянно обновляются...
Брр... То есть, у вас импульсный ток через светодиоды в 20-ть (!) раз должен быть выше среднего тока???
Не каждый светодиод способен выдержать импульсный ток 100mA (а это всего лишь средний ток 5mA).
Реклама
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

Почему вы так считаете? Такой импульсный ток даже в мануалах (даташитах) на светодиоды скорее всего не указан...
Я не планировал на столько повышать.

Как же тогда рулят обычными светодиодными матрицами 8х8, которых в интернете просто кишмя кишит. И все управляются динамической индикацией, и не превышают токи... :dont_know:
Станислав
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

СКАЗОЧНИК писал(а):...Такой импульсный ток даже в мануалах (даташитах) на светодиоды скорее всего не указан...
Я не планировал на столько повышать...
Kingbright всегда указывает в pdf максимальный импульсный ток при оговоренной скважности (для матриц, обычно 1/10 Duty Cycle, 0.1ms Pulse Width).
Решать вам, но в "бегущих строках", которые мне попадались, обычно у всех матриц объединены или строки или колонки (обычно колонки). Т.о., там всего 1/8 Duty Cycle.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

У меня большого выбора нету...
ШИМ (цветовую палитру) можно в моем случае сделать двумя способами. Динамической индикацией, либо Много количеством TLC5940. Много - это на каждые 5 светодиодов по микросхеме, а это дорого и слишком много корпусов.
Аналогично, если не делать динамическую индикацию и ШИМ, то можно обойтись регистрами, но тоже очень много корпусов... :dont_know:
Самый оптимальный метод по моему мнению - именно тот, который я хочу реализовать.
Станислав
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

Тогда попробуйте вначале включить несколько светодиодов которые есть у вас в наличии и и оценить какой средний ток вам необходим.
Дальше уже можно будет думать: оставить так как сейчас задумано или, к примеру, 20-ть строк разделить на две группы по 10-ть.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

Спасибо и за эту идею. )))) Будем попробовать.
Кстати, даже матрицы тоже выписал, специально для экспериментов.
Станислав
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК, а вот Вы уверены, что ШИМ Вам вообще нужен? Нет, теоретически он, конечно, необходим, а практически Вы пробовали освещать выбранными светодиодами реальный экран? Не получится так, что даже при максимальной яркости светиков яркость экрана будет нормальной или даже недостаточной и в тёмной комнате? Тогда и ШИМ ведь не нужен будет.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

В чипе есть схемы поточечной коррекции яркости. Они называются DC (dot correction). На них можно брать данные с разных мест. Если DCPRG = L (общий), то в DC берутся данные из EEPROM. Если DCPRG = H (+5), то в DC берутся данные из регистров DC (их надо предварительно заполнить данными из микроконтроллера). Кроме того, этот пин используется при программировании EEPROM.
Если ты ручками корректировать ничего не будешь и в EEPROM ничего не писал, то вешай DCPRG на землю - при этом для всех точек будет значение коррекции прописанное по умолчанию в EEPROM - 0x3F
надо разобраться, как происходит коррекция? Т.е. Данные, которые я заношу, каким-то образом смешиваются с теми данными, которые записаны для коррекции. И либо они с ЕЕПРОМ по умолчанию, тогда не изменяются, а если я не записывал ЕЕПРОМ, но внес данные для корректировки в DC регистр, то коррекция произойдет.
smacorp писал(а):Не получится так, что даже при максимальной яркости светиков яркость экрана будет нормальной или даже недостаточной
Возможно. Я выбирал самые яркие светодиоды, которые смог достать в большом количестве, и поставил их по 4 штуки последовательно на платы для каждой ячейки. Т.е. еще не поставил, т.к. жду платы, но светят ярко на макетке.
Однако, пока проверить не могу это (как с ШИМ будет), только дней через 5-7 проверю. Но! Что вы предлагаете, если все же Яркости будет не достаточно? Делать без динамической индикации? :roll:
Станислав
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

Зачем же без динамической индикации?
Надо, просто, уточнить сколько "экранов" организовывать из 20-ти линий (1, 2 или 4).
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК писал(а):Что вы предлагаете, если все же Яркости будет не достаточно?
Если яркости будет недостаточно, то нужно будет думать, как её увеличить. А вот если её будет достаточно, тогда ШИМ не нужен, и Вы можете обойтись только регистрами. Которые существенно дешевле, чем TLC5940. Те же 74hc595 по 3.40 руб. в пучке. Правда, меня смущает Ваша фраза "слишком много корпусов" - много по каким критериям?

Если честно, меня вообще смущают некоторые моменты - Вы делаете довольно масштабный и необычный проект, но ограничиваете себя малопонятными (для меня) рамками:

- МК только из тех, что есть в наличии
- только DIP корпуса для красоты платы
- TLC5940, потому что только их удалось быстро достать
- долой скетчи Ардуино (хотя именно по ним легче разобраться, как работает тот или иной чип, и просто переложить код на asm)
- "выбирал самые яркие светодиоды, которые смог достать в большом количестве"
- "слишком много корпусов", опять же

Насколько я сужу по ветке, временем Вы не ограничены. Достать в наше время можно всё. Посылка из Китая идёт 2-4 недели (зимой, правда, и до 2 месяцев иногда). А за копейки такой проект явно не поднять - заказали же Вы платы за почти 6000 руб. Так зачем себя вообще чем-то ограничивать?

Из всех ограничений поддерживаю только Ассемблер - потому что интересно на нём. Но и тут можно подумать в сторону - сначала всё запустить на C, а потом, когда все нюансы всплывут, переложить на asm. Сразу писать на asm, а Вы новичок, насколько я помню, это прямой путь к увеличению времени запуска проекта в разы или вплоть до бесконечности.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

smacorp писал(а):но ограничиваете себя малопонятными (для меня) рамками:

- МК только из тех, что есть в наличии
- только DIP корпуса для красоты платы
- TLC5940, потому что только их удалось быстро достать
- долой скетчи Ардуино (хотя именно по ним легче разобраться, как работает тот или иной чип, и просто переложить код на asm)
- "выбирал самые яркие светодиоды, которые смог достать в большом количестве"
- "слишком много корпусов", опять же
Похоже, что это у меня религия. Потратил на эту конструкцию, которую так и не довел еще до ума уже порядка 12-15 тысяч...
А также, без "бзиков" просто не интересно жить... (так Шелдон говорил из "Теории большого взрыва").
Про Ардуино, у меня просто необычное недоверие к этим штукам, мне кажется, что они примитивны и созданы для школьников... :))) :dont_know:
Диоды выбирал из финансовых возможностей на тот момент.
много - это как у меня получилось бы: 8 разрядов у обычного сдвигового регистра при подключении одного столбца необходимо 7,5 корпусов типа 74НС595, а на 10 столбцов, соответственно - 75. (ну, или чуток меньше, "если использовать каждую половинку оставшихся".
Разве это не много корпусов? :shock:

И да. Временем не ограничен. А проект, скорее для обучения. Не коммерческий. Когда доделаю, тогда доделаю. По пути можно много чего изучить, поэкспериментировать.

З.Ы. А еще меня жутко бесит, что во всем интернете есть информация для этой микросхемы, кроме даташита ТОЛЬКО ДЛЯ АРДУИНЫ! При этом написано "Как легко использовать эту микру, вам нужна только библиотека для Ардуины!" Ну не дебилы ли?! Почему нельзя нормально без библиотек описать протокол управления этой микросхемой, чтобы можно было тупому на русском языке написать под любой микроконтроллер?
И еще, я не знаю Си. Ну почти не знаю. И не хочу знать. Не хочу разбираться в нем, пока не пойму все нюансы на ассемблере. раньше я программировал МК на Си. (начинал с этого), и первый робот мой ездил и управлялся с АТМЕГА8 именно на С.
Но, я понял насколько был быдлокод, когда очередной проект на Си не влез в ТИНИ2313, а он почти ничего не делал! Вот тогда я понял, насколько говном я забил себе мозг, т.к. не знал сам контроллер. Я тупо насиловал его тупым кодом на Си. А сейчас я бы уже так не сделал, т.к. узнал много особенностей архитектуры микроконтроллеров именно благодаря ассемблеру. конечно, сейчас мой код на си мог бы быть несколько оптимальнее. Но, я считаю, что еще мало знаю ассемблер.
хотя, пару термостатов на нем сделал и продал даже. :))) А также другие мелочи. Значит все не зря!
Станислав
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК писал(а):соответственно - 75. Разве это не много корпусов?
Ну.. по мне так нет, потому как они дешёвые, потребляют мало, а размерами корпуса самого устройства Вы не ограничены.

По Ардуине - в соседней ветке уже идёт спор, и я не хотел бы его переносить и сюда, поэтому кратко - как я вижу, никто не призывает Вас использовать именно Ардуино (и это правильно). Я лишь вот о чём - перед Вами неизведанный чип, даташит по нему и цель его запрограммировать. Есть два пути - можно вчитываться в каждую строчку даташита, разбираться в диаграммах и графиках, подключать всё "с нуля", спотыкаясь на каждом шаге, и, если не заработает, проверять и перепроверять всё десятки раз, сомневаясь - "то ли я что-то делаю не так, то ли чип вообще дохлый\бракованный". А можно взять чей-то скетч, подключить за несколько минут, проверить работу чипа, видоизменить скетч под себя, а потом уже переложить на asm, если нужно. Именно поэтому, как Вы пишете, так много "ТОЛЬКО ДЛЯ АРДУИНЫ" - так быстрее, по этому пути и идёт большинство. И оба пути по своему правильны. Гы, кратко не получилось. :)))

В общем, кажется Вы знаете, что теперь делать дальше. Ждём вестей с фронта. :beer: :)))
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение СКАЗОЧНИК »

Да у меня жопа... Попробовал сейчас запустить 4 светодиода последовательно, ограничив ток резисторами.
Не ярко! :cry: При свете видно через белый лист бумаги (Снегурочка) нормальный квадрат, но тускло. А синий цвет хреновасто вообще. Мне не нравится. Тут не то, что ШИМ надо, здесь надо покупать одноваттные светодиоды, или даже трехваттные.
Точно зря платы заказывал. :))) Но их можно встроить в журнальный столик потом, т.к. они 4х4 см, нормальная ячейка получится.

Пробовал увеличить ток, спалил светодиод. Зеленый способен в постоянку вывезти почти 130 мА., а вот красный и синий слабенькие. :kill: :)))

В полутемном помещении нормально видно, конечно. :facepalm: И если применить как экран не бумагу, а нечто более прозрачное.
Станислав
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3484
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение smacorp »

СКАЗОЧНИК, что я и имел ввиду, когда говорил, что поторопились Вы с платами.

Бумага для экрана слишком плотная субстанция. Мне кажется, нужно что-то вроде прозрачного оргстекла - его можно самостоятельно заматировать с нужной степенью.

Увеличивать же ток в светиках - моветон. Даже если сразу не погорят, будете потом лазить и выковыривать их по одному.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Тетрис для АВР+светоматрица. На Ассемблере!

Сообщение Albert_V »

СКАЗОЧНИК, если есть возможность - поспрашивайте рассеиватели с "битых" ЖК матриц (с подсветки).
Лучшего вряд ли найдёте...
:beer:
Ответить

Вернуться в «AVR»