Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос программистам
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб авг 30, 2025 14:52:38

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 381 ]     ... , , , 12, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 12:21:00 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 440
Рейтинг сообщения: 0
как сделать точные задержки на ардуино си++, потому что много всякой дряни добавляется, и появляются неточности.

В ардуине всякие millis() юзают прерывания, т.е. можно настроить таймер по которому начинается отрисовка каждой строки, но нужно быть уверенным, что в этот момент не будут вызываться левые обработчики. И даже без них в зависимости от выполняемой инструкции в обработчик можно попасть с задержкой в несколько тактов, а 2 такта - это уже сдвиг на целый пиксель.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 12:38:12 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Адрифт, так у меня и происходит, скорее всего, потому-что разрешение и частота получаются несколько больше от стандарта.

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 13:59:07 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
зачем стандартному режиму VGA 525 строк, если используются только 480?

уже подсказали))
TovarishAleksey писал(а):
Что значит передний, задний фронты синхронизации?

тут надо разобрать подробнее...
TovarishAleksey писал(а):
Роман, сети не будет!).

будет!)
TovarishAleksey писал(а):
Всё как в древности.

именно так мы и делаем...
потом поймёшь))
TovarishAleksey писал(а):
Адрифт, так у меня и происходит, скорее всего, потому-что разрешение и частота получаются несколько больше от стандарта.

никто не знает что у тебя получается... по твоей картинки ничего не ясно))
настройка теликов и мониторов делается последовательно... строго по инструкции... и тогда никаких вопрос не возникает))
но ты не действуешь по инструкциям...))
:tea:

Добавлено after 13 minutes 11 seconds:
как сделать точные задержки на ардуино си++, потому что много всякой дряни добавляется, и появляются неточности.

В ардуине всякие millis() юзают прерывания, т.е. можно настроить таймер по которому начинается отрисовка каждой строки, но нужно быть уверенным, что в этот момент не будут вызываться левые обработчики. И даже без них в зависимости от выполняемой инструкции в обработчик можно попасть с задержкой в несколько тактов, а 2 такта - это уже сдвиг на целый пиксель.

уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))
Вложение:
Jitter.jpg [29.6 KiB]
Скачиваний: 15

:tea:

Добавлено after 18 minutes 19 seconds:
https://good-kits.ru/nabory-bloki-i-moduli/zx-spectrum/radiokonstruktor-avr-zx-spectrum-v2-2/?ysclid=m2meldirbw910224884

Собрали)

Технические характеристики:
Разрешение экрана: 256 х 192 точки;
Матрица знакомест экрана: 32 х 24;
Количество цветов на знакоместо: 2;
Число цветов экранной области: 8;
Число цветов бордюра: 8;
Число градаций яркости для каждого цвета: 2;
Эквивалентная частота ЦП: 2,333 МГц;
Порты ввода/вывода: 0xFE, 0x7FFD, 0xFFFD, 0xBFFD;
Клавиатурный интерфейс: PS/2;
Число задействованных клавиш: 82;
Число каналов звукового сопровождения: 4;
Перечень каналов звукового сопровождения: левый AY8910, правый AY8910, средний AY8910, бипер;
Видеовыходы: ЧБ выход, RGB выход, отдельный выход синхронизации;
Поддержка загрузки/выгрузки «на ленту»: имеется;
Дополнительные устройства ввода/вывода: micro-SD карта;
Поддерживаемые модели ZXSpectrum: Pentagon 128 K, ZXSpectrum 128 K, ZXSpectrum48 K, ZXSpectrum+2, ZXSpectrum+3, ZXSpectrum48 K` 2006; OPEN SE BASIC 128 K, OPENSEBASIC 48 K;
Дополнительная операционная система: SDDOS;
Файловая система: FAT32;
Поддержка TR-DOS;
модуль Turbo-Sound с интерфейсом Kempston-джойстика;
Разъём шины ввода/вывода: имеется;
Конструкция: двухсторонняя печатная плата 140 х 22 мм, установка внутри клавиатуры или в отдельный корпус;
Питание устройства: соединитель mini-USB«F», напряжение +5 В.

Тю ! ))
:)))
-Интернета нет... ))
-Клавиатурный интерфейс: PS/2... А мы хотим USB !!! ))
...
-Файловая система: FAT32... А мы хотим NTFS !!! ))
...
-Дополнительные устройства ввода/вывода: micro-SD карта... был бы Интернет.. не нужны никакие SD... ))
...
-Питание устройства: соединитель mini-USB«F», напряжение +5 В... А мы хотим PoE !!! ))
...

опять много букав...))
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 14:26:53 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Букав много, так как непонимания много.
А по какой инструкции мне действовать, если я ещё с этими таймерами не разобрался? Нопы нужны, так как и делаются один раз за 1/16МГц = 62,5нс. С готовыми таймерами хрен это посчитаешь всё, там ещё всякие штуки добавляются, в итоге точность где-то 4мс. :dont_know:
Цитата:
тут надо разобрать подробнее...

Как я понял: передний фронт - сигнал, что перед синхроимпульсом, задний - сигнал, что после этого же синхроимпульса.
Картинка вообще значения не имеет. Когда к монитору подключается сигнал, видны характеристики этого сигнала, там я всю информацию и черпаю.
Да, хочу сделать пару USB портов: один на клаву, другой на всякие устройства, типа джойстики. В качестве файловой системы, FAT предпочтительней, с NTFS я уже наигрался в винде.. Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)0)

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 14:44:41 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
если внимательно присмотреться... то сигнал VGA
Вложение:
VGA_строки_кадры.jpg [36.7 KiB]
Скачиваний: 19

ничем не отличается от видео сигнала в старом телике))
Вложение:
сигнал старого телика)).jpg [31.65 KiB]
Скачиваний: 14

оно и понятно... так оба они АНАЛОГОВЫЕ ))
:tea:
поэтому... кто собирал/ремонтировал телики... тот без труда поймет что там нарисовано и зачем))
:)
подробнее...
TovarishAleksey писал(а):
Что значит передний, задний фронты синхронизации? Что за импульс гашения, бордюр??

"... в старо-древние времена... когда мониторы были большие... использовали аналоговый видео сигнал..."
:sleep:
))
в этих старых мониторах картинку рисовал электронный луч...
Вложение:
)).jpg [44.4 KiB]
Скачиваний: 14

а чтобы картинка не "убегала"... использовали синхронизацию... кадровую и строчную...
-есть кадровые импульсы синхронизации...
-есть строчные импульсы синхронизации...

без синхронизации картинка будет дрожать... и убегать...))
Вложение:
))).jpg [54.11 KiB]
Скачиваний: 15


в кадровых и строчных импульсах есть передний, задний фронты... и импульсы гашения...
:sleep:
))
все эти импульсы можно посмотреть на экране... старого монитора или телика... если предварительно отключить синхронизацию в блоке синхронизации старого монитора или телика...

хотя... они видны и просто при слабом сигнале...
вот кадровые импульсы... бегут сверхву вниз (или снизу вверх) по экрану...
Вложение:
кадровые импульсы.jpg [197.57 KiB]
Скачиваний: 21

а вот строчные ипульсы... бегут слева направо (или справо налево) по экрану...
Вложение:
строчные импульсы.jpg [165.88 KiB]
Скачиваний: 16

и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 14:51:47 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Ну это понятно. Я зимой разобрал телевизор, так там кинескоп, нет, даже кинескопище! Выкинул его на свалку, а платы и сейчас использую. :))) Куча добра: и выпрямители, и диоды, и стабилитроны, и транзисторы, и резисторы, и конденсаторы. В общем, целый склад.

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 15:03:36 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 440
Рейтинг сообщения: 0
уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))

На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 15:13:50 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
Я зимой разобрал телевизор...

вот сигнал видео на картинке... видим строчные импульсы ))
Вложение:
сигнал старого телика)).jpg [31.65 KiB]
Скачиваний: 18

вот сигнал видео на экране старого телика... видим строчный импульс))
Вложение:
импульс.jpg [48.89 KiB]
Скачиваний: 13

вот сигнал видео на экране осциллографа... видим строчный импульс))
Вложение:
в реальной жизни)).jpg [29.56 KiB]
Скачиваний: 18

а вот всё вместе))
Вложение:
полная картина )).jpg [54.06 KiB]
Скачиваний: 14

теперь у тебя есть... полная картина мира ! ))
:)))
теперь ты знаешь с чем имеешь дело...
осталось придумать как это всё сделать на радуине...
:tea:

Добавлено after 1 minute 56 seconds:
уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))

На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?

вариантов миллион))
например... выше есть схема "синхрофазотрона"))
:))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 15:16:51 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
да, ваша картина сделала своё дело. Сажусь за "думанье". :roll:

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 20:13:14 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
ну вот... так бы сразу))
Adrift писал(а):
уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))

На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?

выше подробно все расписал...
схема "синхрофазотрон"))
Вложение:
схема_синхрофазотрон)).jpg [104.66 KiB]
Скачиваний: 21

-первая радуина отвечает за синхронизацию HSYNC.
-вторая ардуина отвечает за вывод данных в порт для каждой строки через одинаковые промежутки после HSYNC.

вывод в пот Ethernet ничем не отличается от вывода в порт VGA.
-и там и там есть буфер
-и там и там есть синхронизация
и т.д.

для кого я это всё пишу тут... соображалка тут ни у кого не работает))
Букав много, так как непонимания много.

угу))
А по какой инструкции мне действовать, если я ещё с этими таймерами не разобрался?

инструкция по настройке теликов))
Нопы нужны, так как и делаются один раз за 1/16МГц = 62,5нс.

тоже самое делает аппаратный таймер в ардуине без всяких нопов.
С готовыми таймерами хрен это посчитаешь всё, там ещё всякие штуки добавляются, в итоге точность где-то 4мс.

готовый таймер в ардуине сам всё считает...)) работа у него такая... считать))
таймер настраивается программно один раз при инициализации...))
Как я понял: передний фронт - сигнал, что перед синхроимпульсом, задний - сигнал, что после этого же синхроимпульса.

"... в старо-древние времена... когда мониторы были большие... "
хочу сделать пару USB портов: один на клаву, другой на всякие устройства, типа джойстики. В качестве файловой системы, FAT предпочтительней, с NTFS я уже наигрался в винде.. Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)0)

USB... придётся повозится... там сигнал сложнее... чем в интернете ))
Вложение:
USB.jpg [35.17 KiB]
Скачиваний: 13

В качестве файловой системы, FAT...

курили уже))

потом надоело... и забросили))
потом взяли и подключили флешку напрямую прямо к ардуине !
и как начали писать на флешку... по секторам... по 512 байт... без всяких файловых систем))
и всё у нас прекрасно работало... и без ваших систем))
:)))
с NTFS я уже наигрался в винде..

в винде.. ?
а на ардуине ? ))
Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)

а как делали раньше ?
:roll:
"... в старо-древние времена... когда мониторы были большие... "
:)))
загугли... "бездисковые рабочие станции"
Вложение:
))).jpg [39.72 KiB]
Скачиваний: 15

:)))

Добавлено after 24 minutes 20 seconds:
далее...
берём наш самодельный "компутер" и подключаем к заводскому компу... с помощью нашей самодельной сетевой карты))
:)))
-при включении питания наш самодельный "компутер" отправляет запрос к заводскому компу...
-на заводском компе запущено серверное приложение Java... которое читает с жёсткого диска ОС от отправляет обратно нашему самодельному "компу" ))
-так осуществляется загрузка нашей ОС... с BIOS... со всеми пользовательскими настройками... и т.д.
Вложение:
бездисковая рабочая станция )).jpg [160.21 KiB]
Скачиваний: 16

АААА ! что творится ! ))
:o
у нас получилась бездисковая рабочая станция на ардуине !!!
:)))

Добавлено after 16 minutes 40 seconds:
Роман, сети не будет!)

нее... ты что ! а как мы будем грузить ОС... а как мы будем отправлять скриншоты всякие))
Вложение:
Screenshot.jpg [98.06 KiB]
Скачиваний: 14

отправлять фоточки))
Вложение:
1.jpg [75.26 KiB]
Скачиваний: 12

как будет заходить удалённо на наш самодельный "компутер"... аналогично всяким древним виверам...
Вложение:
TeamViewer.jpg [35.33 KiB]
Скачиваний: 16

и радминам))
Вложение:
Radmin.jpg [128.25 KiB]
Скачиваний: 13

я уже не говорю про передачу файлов...

не... без сети никак низя)) без сети это уже будет не "компутер"... а фигня какая-то ))
:tea:

Добавлено after 1 hour 20 minutes 39 seconds:
далее...
видео карта...
прикинем как сделать на таймере...
:roll:
берём ардуину... какая у тебя там... не знаю)) поэтому берём популярную мега328...
будем делать на таймере_1... поэтому выбираем свободный вывод например PB1...
Вложение:
ардуина.jpg [20.54 KiB]
Скачиваний: 15

с него будем получать сигнал синхронизации...
а RGB можем снимать с любых других не занятых... например d0 d1 d2...

Добавлено after 3 minutes 29 seconds:
надо получить такой сигнал...
Вложение:
строчная развёртка.jpg [37.82 KiB]
Скачиваний: 18

легко ! ))

Добавлено after 1 hour 59 minutes 22 seconds:
делее... надо вспомнить как работает ардуина))
Вложение:
схема.jpg [35.96 KiB]
Скачиваний: 13

подключаем кварц...
Вложение:
Screenshot_1.jpg [37.39 KiB]
Скачиваний: 13

после включения питания кварц запускается не сразу...
Вложение:
кварц.jpg [39.12 KiB]
Скачиваний: 13

поэтому ставим задержку включения...))
Вложение:
время.jpg [46.89 KiB]
Скачиваний: 12

потом смотрим схему... кварц подключён к генератору... генератор подключён к таймеру... таймер по шине подключён к выводу B1.
Вложение:
Screenshot_2.jpg [46.61 KiB]
Скачиваний: 14

ставим делитель таймера в ноль))

Добавлено after 3 minutes 59 seconds:
Вложение:
делитель.jpg [33.61 KiB]
Скачиваний: 13

теперь сигнал с кварца напрямую управляет таймером... а таймер напрямую управляет выводом B1.
осталось только установить режим работы таймера))
Вложение:
режим_таймер_1.jpg [29.78 KiB]
Скачиваний: 15

на выводе B1 получаем точную копию нашего сигнала)).
Вложение:
строчная развёртка.jpg [37.82 KiB]
Скачиваний: 16

всё))
точность 1/16МГц = 62,5нс.
как два пальца об асфальт)))
:)))

и самое главное... ничего не дрожит... никаких NOP не надо... импульсы на выходе зависят только от частоты кварца... и больше ни от чего))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Чт окт 24, 2024 23:23:24 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Роман, спасибо вам за объяснение! С таймерами как раз разобрался, понял что и как работает, понял что ошибался на счёт ардуины. Осталось только научиться с ними работать в самой IDE, научиться их программировать правильно. На счёт фронтов: если бы они были только во старых древних телевизорах, мне не пришлось бы несколько дней сидеть и думать, так что давайте не будем разделять на старое и новое, интерфейс то всё тот же..
Мой бюджет - три картошки и свекла, на сервер денег нет, посему, будем использовать карточку, без всяких там паутин! :wink:
Цитата:
без сети это уже будет не "компутер"... а фигня какая-то ))

Нуу, моя цель это как раз такая простая фигня, в которой всё надо писать самому, и никаких тыгынетов..
Уже 13 страница букав, а результата всё нет и нет, надо исправлять! :beer:

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 00:14:57 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
Уже 13 страница букав, а результата всё нет и нет, надо исправлять!

Это не важно)) главное что каждая буковка несёт полезную информацию... а не просто пустой звук))
TovarishAleksey писал(а):
Мой бюджет - три картошки и свекла, на сервер денег нет, посему, будем использовать карточку, без всяких там паутин!

сервер... это любое устройство в доме на котором запущена программа "сервер".
к качестве устройства для сервера может быть что угодно))
-компутер
-телефон
-планшет
-ноутбук
-и даже просто картонная коробка ! в корой спрятана ардуина... это тоже сервер ! ))
Вложение:
скрин.jpg [152.34 KiB]
Скачиваний: 13

:)))
TovarishAleksey писал(а):
Осталось только научиться с ними работать в самой IDE, научиться их программировать правильно.

работать в самой IDE с разными блоками ардуины... не сложно))
в самой IDE можно просто писать регистры из даташита нужного блока...
мы много раз так делали...
только есть одна проблема... в самой IDE блоки МК уже могут быть задействованы... тут печалька))

а сам код настройки таймера это 10 строк... которые копируются прямо в саму IDE...

пример кода инициализации таймера 1...

Код:
TCCR1A=0x02; //WGM11=1, WGM10=0
TCCR1B=0x1C; //WGM13=1, WGM12=1 //8.000.000 Hz/256 = 31250 Hz 
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;  //регистр захвата - верхний предел счета
ICR1L=0x00;  //регистр захвата - верхний предел счета
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

осталось только записать значения в регистры... согласно таймингам...

ну хорошо... сделаем мы синхронизацию... а дальше что ?

-выводить можно в прерывании таймера.
рекомендуется если писать на всяких си и с++
т.е. там где трудно контролировать тайминги.
частота прерываний тоже стабильна... зависит от частоты кварца и больше ни от чего)) если нет других прерываний...

-выводить можно в основной программе после опроса флага таймера таймера.
не рекомендуется если писать на всяких си и с++

и самое главное...
а нафига нам вообще таймер ?
а не лучше ли сразу писать на ассемблере...
в ассемблере все тайминги легко контролировать...
время выполнения всех инструкций в ассемблере так же зависят только от частоты кварца и больше ни от чего))
поэтому в ассемблере ничего не дрожит))

а что мы вообще выводить будем ? )) и зачем нам вообще видюха ?

не... ну что должна делать сетевуха... я представляю четко.. поэтому сел и сразу написал код))
8)
а вот что должна делать видюха... я представляю смутно))
:dont_know:
и как можно писать код не зная для чего ? ))

говорили... говорили... и договорились... :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 00:47:17 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Ассемблер вполне можно, только разве для этого не требуется програматор? Пробовал атмел студио, ну нифига не понятно, куча кнопочек.. Можно и в си++ писать, типа вот так: asm(nop).
Выводить буду картинки 256x192пкс, которые будет рисовать мой "программируемый компьютер". То есть сейчас я изобретаю видеокарту..
Цель: что-то вроде ZX-Spectrum, и в игры поиграть, и датчики использовать. Игры, конечно же, буду писать я, именно для этого я его и делаю. После того, как закончу "видеокарту", продолжу писать свой ЯП, только уже для этого компьютера.

Добавлено after 2 minutes 19 seconds:
Ну, видеокарта же рисует, вот. Не понимаю, что не понятно..

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 01:06:33 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8386
Откуда: .ru
Рейтинг сообщения: 0
у меня такая...
Вложение:
у меня AVR студия.jpg [3.69 KiB]
Скачиваний: 15

Вложение:

не понятно потому что нет общей схемы... что куда и зачем))
в заводском компе есть...
-или процессор со встроенной графикой
-или отдельная видюха

отдельная видюха это отдельный комп)) со своим процом... памятью.. вводом...выводом... и т.д.
а собственно зачем она там ? если подумать... )) :roll:

значит и в ардуине должен быть кроме синхронизации... ещё как минимум ввод... вывод...
она же должна куда то подключаться... по шине PCI или как... ))
схемы нет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 04:58:52 
Друг Кота

Карма: 29
Рейтинг сообщений: 12
Зарегистрирован: Пт янв 12, 2007 11:21:39
Сообщений: 18476
Откуда: Томск
Рейтинг сообщения: 0
уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))

На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?


Ну.. при разрешении 320, на один пиксель по горизонтали приходится 78,6нс примерно

Одна операция на пиксель. Ну полторы... Для avr на 16 МГц


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 10:02:27 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Роман, похоже у меня не та версия программы, а какая у вас? Ой ой, PCI я делать точно не буду. "Видеокарту" буду подключать к такой же ардуине, которая будет отвечать за логику, посему можно их подключить по UART, можно по I2C.

Добавлено after 25 minutes 1 second:
обнаружил, что нет моей atmega328P, значит не судьба.. :cry:
Придётся использовать Arduino IDE.

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 10:20:33 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 440
Рейтинг сообщения: 0
Выводить буду картинки 256x192пкс, которые будет рисовать мой "программируемый компьютер". То есть сейчас я изобретаю видеокарту..
Цель: что-то вроде ZX-Spectrum, и в игры поиграть, и датчики использовать. Игры, конечно же, буду писать я, именно для этого я его и делаю. После того, как закончу "видеокарту", продолжу писать свой ЯП, только уже для этого компьютера.

Какой самый быстрый способ вывести строку в порт из RAM? Дублировать пару инструкций 256 раз:
Код:
LD R16,X+
OUT PORTA,R16
LD R16,X+
OUT PORTA,R16

Пара выполняется за 3 такта но, как я говорил, для AVR разогнанного до 25 MHz нужно делать это за 2 такта. Причем ради скорости мы просто байт берем, без дополнительных преобразований, потому нужно 256*192 = 49152 байта только для видеопамяти. И пока идет отрисовка строки нельзя ничего делать, иначе будет дырка в середине экрана. В общем делать подобную видеокарту на AVR изначально бесперспективно, лучше сразу на ARM ориентироваться, там все будет в одном корпусе, включая пару USB.

Добавлено after 12 minutes 17 seconds:
-выводить можно в прерывании таймера.
рекомендуется если писать на всяких си и с++
т.е. там где трудно контролировать тайминги.
частота прерываний тоже стабильна... зависит от частоты кварца и больше ни от чего)) если нет других прерываний...

-выводить можно в основной программе после опроса флага таймера таймера.
не рекомендуется если писать на всяких си и с++

и самое главное...
а нафига нам вообще таймер ?
а не лучше ли сразу писать на ассемблере...
в ассемблере все тайминги легко контролировать...
время выполнения всех инструкций в ассемблере так же зависят только от частоты кварца и больше ни от чего))
поэтому в ассемблере ничего не дрожит))

Еще как дрожит, хотя есть способ как это побороть. Допустим написали мы на ассме цикл ожидания флага таймера из двух инструкций выполняемых за 3 такта, в результате выйдем из него с возможным опозданием на 1-2 такта и картинка на экране уедет на пиксель. То же с прерываниями, если в момент его вызова выполнялась 2-х и более тактовая инструкция, то в прерывание попадем с опозданием в 1-3 такта. Похоже вы опытный товарищ, подскажите ТС что в таком случае ему нужно делать? )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 11:09:06 
Друг Кота

Карма: 29
Рейтинг сообщений: 12
Зарегистрирован: Пт янв 12, 2007 11:21:39
Сообщений: 18476
Откуда: Томск
Рейтинг сообщения: 0
А если взять не AVR, а esp8266 то можно просто сделать VGA контроллер)

https://github.com/smaffer/espvgax2

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 11:14:32 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вс сен 22, 2024 12:16:47
Сообщений: 313
Откуда: Село Лютенька
Рейтинг сообщения: 0
Сфс, а у меня нашлась как раз такая, с вайфаем.

_________________
"Умный может зарабатывать триста рублей, а проживать три тысячи"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос программистам
СообщениеДобавлено: Пт окт 25, 2024 11:20:35 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 440
Рейтинг сообщения: 0
Если ESP, то надо сразу ESP32S3 брать, там аппаратно все поддерживается. Лично я не фанат ESP, особенно которые на Xtensa, но если сравнивать готовые платки, то будет дешевле, чем STM32H7.

Изображение


Вложения:
s3.png [56.66 KiB]
Скачиваний: 120
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 381 ]     ... , , , 12, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: АлександрЛ и гости: 153


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y