Вопрос программистам

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Adrift
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Вопрос программистам

Сообщение Adrift »

[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640018#p4640018"]как сделать точные задержки на ардуино си++, потому что много всякой дряни добавляется, и появляются неточности.[/uquote]
В ардуине всякие millis() юзают прерывания, т.е. можно настроить таймер по которому начинается отрисовка каждой строки, но нужно быть уверенным, что в этот момент не будут вызываться левые обработчики. И даже без них в зависимости от выполняемой инструкции в обработчик можно попасть с задержкой в несколько тактов, а 2 такта - это уже сдвиг на целый пиксель.
Реклама
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Адрифт, так у меня и происходит, скорее всего, потому-что разрешение и частота получаются несколько больше от стандарта.
"Умный может зарабатывать триста рублей, а проживать три тысячи"
Реклама
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4639971#p4639971"]зачем стандартному режиму VGA 525 строк, если используются только 480?[/uquote]
уже подсказали))
TovarishAleksey писал(а):Что значит передний, задний фронты синхронизации?
тут надо разобрать подробнее...
TovarishAleksey писал(а):Роман, сети не будет!).
будет!)
TovarishAleksey писал(а):Всё как в древности.
именно так мы и делаем...
потом поймёшь))
TovarishAleksey писал(а):Адрифт, так у меня и происходит, скорее всего, потому-что разрешение и частота получаются несколько больше от стандарта.
никто не знает что у тебя получается... по твоей картинки ничего не ясно))
настройка теликов и мониторов делается последовательно... строго по инструкции... и тогда никаких вопрос не возникает))
но ты не действуешь по инструкциям...))
:tea:

Добавлено after 13 minutes 11 seconds:
[uquote="Adrift",url="/forum/viewtopic.php?p=4640036#p4640036"][uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640018#p4640018"]как сделать точные задержки на ардуино си++, потому что много всякой дряни добавляется, и появляются неточности.[/uquote]
В ардуине всякие millis() юзают прерывания, т.е. можно настроить таймер по которому начинается отрисовка каждой строки, но нужно быть уверенным, что в этот момент не будут вызываться левые обработчики. И даже без них в зависимости от выполняемой инструкции в обработчик можно попасть с задержкой в несколько тактов, а 2 такта - это уже сдвиг на целый пиксель.[/uquote]
уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))
Jitter.jpg
(29.6 КБ) 32 скачивания
:tea:

Добавлено after 18 minutes 19 seconds:
[uquote="SfS",url="/forum/viewtopic.php?p=4639936#p4639936"]https://good-kits.ru/nabory-bloki-i-moduli/zx-spectrum/radiokonstruktor-avr-zx-spectrum-v2-2/?ysclid=m2meldirbw910224884

Собрали)[/uquote]
Технические характеристики:
Разрешение экрана: 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:
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Букав много, так как непонимания много.
А по какой инструкции мне действовать, если я ещё с этими таймерами не разобрался? Нопы нужны, так как и делаются один раз за 1/16МГц = 62,5нс. С готовыми таймерами хрен это посчитаешь всё, там ещё всякие штуки добавляются, в итоге точность где-то 4мс. :dont_know:
тут надо разобрать подробнее...
Как я понял: передний фронт - сигнал, что перед синхроимпульсом, задний - сигнал, что после этого же синхроимпульса.
Картинка вообще значения не имеет. Когда к монитору подключается сигнал, видны характеристики этого сигнала, там я всю информацию и черпаю.
Да, хочу сделать пару USB портов: один на клаву, другой на всякие устройства, типа джойстики. В качестве файловой системы, FAT предпочтительней, с NTFS я уже наигрался в винде.. Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)0)
"Умный может зарабатывать триста рублей, а проживать три тысячи"
Реклама
Эиком - электронные компоненты и радиодетали
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

если внимательно присмотреться... то сигнал VGA
VGA_строки_кадры.jpg
(36.7 КБ) 37 скачиваний
ничем не отличается от видео сигнала в старом телике))
сигнал старого телика)).jpg
(31.65 КБ) 39 скачиваний
оно и понятно... так оба они АНАЛОГОВЫЕ ))
:tea:
поэтому... кто собирал/ремонтировал телики... тот без труда поймет что там нарисовано и зачем))
:)
подробнее...
TovarishAleksey писал(а):Что значит передний, задний фронты синхронизации? Что за импульс гашения, бордюр??
"... в старо-древние времена... когда мониторы были большие... использовали аналоговый видео сигнал..."
:sleep:
))
в этих старых мониторах картинку рисовал электронный луч...
)).jpg
(44.4 КБ) 32 скачивания
а чтобы картинка не "убегала"... использовали синхронизацию... кадровую и строчную...
-есть кадровые импульсы синхронизации...
-есть строчные импульсы синхронизации...

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

хотя... они видны и просто при слабом сигнале...
вот кадровые импульсы... бегут сверхву вниз (или снизу вверх) по экрану...
кадровые импульсы.jpg
(197.57 КБ) 46 скачиваний
а вот строчные ипульсы... бегут слева направо (или справо налево) по экрану...
строчные импульсы.jpg
(165.88 КБ) 33 скачивания
и т.д.
Реклама
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Ну это понятно. Я зимой разобрал телевизор, так там кинескоп, нет, даже кинескопище! Выкинул его на свалку, а платы и сейчас использую. :))) Куча добра: и выпрямители, и диоды, и стабилитроны, и транзисторы, и резисторы, и конденсаторы. В общем, целый склад.
"Умный может зарабатывать триста рублей, а проживать три тысячи"
Реклама
Adrift
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Вопрос программистам

Сообщение Adrift »

[uquote="roman.com",url="/forum/viewtopic.php?p=4640070#p4640070"]уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))[/uquote]
На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640108#p4640108"]Я зимой разобрал телевизор...[/uquote]
вот сигнал видео на картинке... видим строчные импульсы ))
сигнал старого телика)).jpg
(31.65 КБ) 36 скачиваний
вот сигнал видео на экране старого телика... видим строчный импульс))
импульс.jpg
(48.89 КБ) 30 скачиваний
вот сигнал видео на экране осциллографа... видим строчный импульс))
в реальной жизни)).jpg
(29.56 КБ) 37 скачиваний
а вот всё вместе))
полная картина )).jpg
(54.06 КБ) 35 скачиваний
теперь у тебя есть... полная картина мира ! ))
:)))
теперь ты знаешь с чем имеешь дело...
осталось придумать как это всё сделать на радуине...
:tea:

Добавлено after 1 minute 56 seconds:
[uquote="Adrift",url="/forum/viewtopic.php?p=4640114#p4640114"][uquote="roman.com",url="/forum/viewtopic.php?p=4640070#p4640070"]уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))[/uquote]
На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?[/uquote]
вариантов миллион))
например... выше есть схема "синхрофазотрона"))
:))
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

да, ваша картина сделала своё дело. Сажусь за "думанье". :roll:
"Умный может зарабатывать триста рублей, а проживать три тысячи"
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

ну вот... так бы сразу))
Adrift писал(а):[uquote="roman.com",url="/forum/viewtopic.php?p=4640070#p4640070"]уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))[/uquote]
На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?
выше подробно все расписал...
схема "синхрофазотрон"))
схема_синхрофазотрон)).jpg
(104.66 КБ) 37 скачиваний
-первая радуина отвечает за синхронизацию HSYNC.
-вторая ардуина отвечает за вывод данных в порт для каждой строки через одинаковые промежутки после HSYNC.

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

для кого я это всё пишу тут... соображалка тут ни у кого не работает))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]Букав много, так как непонимания много.[/uquote]
угу))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]А по какой инструкции мне действовать, если я ещё с этими таймерами не разобрался?[/uquote]
инструкция по настройке теликов))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]Нопы нужны, так как и делаются один раз за 1/16МГц = 62,5нс.[/uquote]
тоже самое делает аппаратный таймер в ардуине без всяких нопов.
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]С готовыми таймерами хрен это посчитаешь всё, там ещё всякие штуки добавляются, в итоге точность где-то 4мс.[/uquote]
готовый таймер в ардуине сам всё считает...)) работа у него такая... считать))
таймер настраивается программно один раз при инициализации...))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]Как я понял: передний фронт - сигнал, что перед синхроимпульсом, задний - сигнал, что после этого же синхроимпульса.[/uquote]
"... в старо-древние времена... когда мониторы были большие... "
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]хочу сделать пару USB портов: один на клаву, другой на всякие устройства, типа джойстики. В качестве файловой системы, FAT предпочтительней, с NTFS я уже наигрался в винде.. Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)0)[/uquote]
USB... придётся повозится... там сигнал сложнее... чем в интернете ))
USB.jpg
(35.17 КБ) 31 скачивание
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]В качестве файловой системы, FAT...[/uquote]
курили уже))

потом надоело... и забросили))
потом взяли и подключили флешку напрямую прямо к ардуине !
и как начали писать на флешку... по секторам... по 512 байт... без всяких файловых систем))
и всё у нас прекрасно работало... и без ваших систем))
:)))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]с NTFS я уже наигрался в винде..[/uquote]
в винде.. ?
а на ардуине ? ))
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640099#p4640099"]Был бы интернет, всё равно SD-карта понадобилась бы, куда софт складывать?)[/uquote]
а как делали раньше ?
:roll:
"... в старо-древние времена... когда мониторы были большие... "
:)))
загугли... "бездисковые рабочие станции"
))).jpg
(39.72 КБ) 33 скачивания
:)))

Добавлено after 24 minutes 20 seconds:
далее...
берём наш самодельный "компутер" и подключаем к заводскому компу... с помощью нашей самодельной сетевой карты))
:)))
-при включении питания наш самодельный "компутер" отправляет запрос к заводскому компу...
-на заводском компе запущено серверное приложение Java... которое читает с жёсткого диска ОС от отправляет обратно нашему самодельному "компу" ))
-так осуществляется загрузка нашей ОС... с BIOS... со всеми пользовательскими настройками... и т.д.
бездисковая рабочая станция )).jpg
(160.21 КБ) 31 скачивание
АААА ! что творится ! ))
:o
у нас получилась бездисковая рабочая станция на ардуине !!!
:)))

Добавлено after 16 minutes 40 seconds:
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4639971#p4639971"]Роман, сети не будет!)[/uquote]
нее... ты что ! а как мы будем грузить ОС... а как мы будем отправлять скриншоты всякие))
Screenshot.jpg
(98.06 КБ) 31 скачивание
отправлять фоточки))
1.jpg
(75.26 КБ) 29 скачиваний
как будет заходить удалённо на наш самодельный "компутер"... аналогично всяким древним виверам...
TeamViewer.jpg
(35.33 КБ) 38 скачиваний
и радминам))
Radmin.jpg
(128.25 КБ) 34 скачивания
я уже не говорю про передачу файлов...

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

Добавлено after 1 hour 20 minutes 39 seconds:
далее...
видео карта...
прикинем как сделать на таймере...
:roll:
берём ардуину... какая у тебя там... не знаю)) поэтому берём популярную мега328...
будем делать на таймере_1... поэтому выбираем свободный вывод например PB1...
ардуина.jpg
(20.54 КБ) 35 скачиваний
с него будем получать сигнал синхронизации...
а RGB можем снимать с любых других не занятых... например d0 d1 d2...

Добавлено after 3 minutes 29 seconds:
надо получить такой сигнал...
строчная развёртка.jpg
(37.82 КБ) 38 скачиваний
легко ! ))

Добавлено after 1 hour 59 minutes 22 seconds:
делее... надо вспомнить как работает ардуина))
схема.jpg
(35.96 КБ) 32 скачивания
подключаем кварц...
Screenshot_1.jpg
(37.39 КБ) 34 скачивания
после включения питания кварц запускается не сразу...
кварц.jpg
(39.12 КБ) 29 скачиваний
поэтому ставим задержку включения...))
время.jpg
(46.89 КБ) 32 скачивания
потом смотрим схему... кварц подключён к генератору... генератор подключён к таймеру... таймер по шине подключён к выводу B1.
Screenshot_2.jpg
(46.61 КБ) 34 скачивания
ставим делитель таймера в ноль))

Добавлено after 3 minutes 59 seconds:
делитель.jpg
(33.61 КБ) 31 скачивание
теперь сигнал с кварца напрямую управляет таймером... а таймер напрямую управляет выводом B1.
осталось только установить режим работы таймера))
режим_таймер_1.jpg
(29.78 КБ) 35 скачиваний
на выводе B1 получаем точную копию нашего сигнала)).
строчная развёртка.jpg
(37.82 КБ) 37 скачиваний
всё))
точность 1/16МГц = 62,5нс.
как два пальца об асфальт)))
:)))

и самое главное... ничего не дрожит... никаких NOP не надо... импульсы на выходе зависят только от частоты кварца... и больше ни от чего))
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Роман, спасибо вам за объяснение! С таймерами как раз разобрался, понял что и как работает, понял что ошибался на счёт ардуины. Осталось только научиться с ними работать в самой IDE, научиться их программировать правильно. На счёт фронтов: если бы они были только во старых древних телевизорах, мне не пришлось бы несколько дней сидеть и думать, так что давайте не будем разделять на старое и новое, интерфейс то всё тот же..
Мой бюджет - три картошки и свекла, на сервер денег нет, посему, будем использовать карточку, без всяких там паутин! :wink:
без сети это уже будет не "компутер"... а фигня какая-то ))
Нуу, моя цель это как раз такая простая фигня, в которой всё надо писать самому, и никаких тыгынетов..
Уже 13 страница букав, а результата всё нет и нет, надо исправлять! :beer:
"Умный может зарабатывать триста рублей, а проживать три тысячи"
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640324#p4640324"]Уже 13 страница букав, а результата всё нет и нет, надо исправлять![/uquote]
Это не важно)) главное что каждая буковка несёт полезную информацию... а не просто пустой звук))
TovarishAleksey писал(а): Мой бюджет - три картошки и свекла, на сервер денег нет, посему, будем использовать карточку, без всяких там паутин!
сервер... это любое устройство в доме на котором запущена программа "сервер".
к качестве устройства для сервера может быть что угодно))
-компутер
-телефон
-планшет
-ноутбук
-и даже просто картонная коробка ! в корой спрятана ардуина... это тоже сервер ! ))
скрин.jpg
(152.34 КБ) 33 скачивания
:)))
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:
и как можно писать код не зная для чего ? ))

говорили... говорили... и договорились... :)))
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Ассемблер вполне можно, только разве для этого не требуется програматор? Пробовал атмел студио, ну нифига не понятно, куча кнопочек.. Можно и в си++ писать, типа вот так: asm(nop).
Выводить буду картинки 256x192пкс, которые будет рисовать мой "программируемый компьютер". То есть сейчас я изобретаю видеокарту..
Цель: что-то вроде ZX-Spectrum, и в игры поиграть, и датчики использовать. Игры, конечно же, буду писать я, именно для этого я его и делаю. После того, как закончу "видеокарту", продолжу писать свой ЯП, только уже для этого компьютера.

Добавлено after 2 minutes 19 seconds:
Ну, видеокарта же рисует, вот. Не понимаю, что не понятно..
"Умный может зарабатывать триста рублей, а проживать три тысячи"
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Вопрос программистам

Сообщение roman.com »

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

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

значит и в ардуине должен быть кроме синхронизации... ещё как минимум ввод... вывод...
она же должна куда то подключаться... по шине PCI или как... ))
схемы нет...
SfS
Друг Кота
Сообщения: 19421
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Вопрос программистам

Сообщение SfS »

[uquote="Adrift",url="/forum/viewtopic.php?p=4640114#p4640114"][uquote="roman.com",url="/forum/viewtopic.php?p=4640070#p4640070"]уже бы давно все на таймерах сделали...
вы запаритесь высчитывать машинные такты... с NOP))[/uquote]
На таймерах можно синхроимпульсы точно генерить, а как начать выводить данные в порт для каждой строки через одинаковые промежутки после HSYNC?[/uquote]

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

Одна операция на пиксель. Ну полторы... Для avr на 16 МГц
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Роман, похоже у меня не та версия программы, а какая у вас? Ой ой, PCI я делать точно не буду. "Видеокарту" буду подключать к такой же ардуине, которая будет отвечать за логику, посему можно их подключить по UART, можно по I2C.

Добавлено after 25 minutes 1 second:
обнаружил, что нет моей atmega328P, значит не судьба.. :cry:
Придётся использовать Arduino IDE.
"Умный может зарабатывать триста рублей, а проживать три тысячи"
Adrift
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Вопрос программистам

Сообщение Adrift »

[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640332#p4640332"]Выводить буду картинки 256x192пкс, которые будет рисовать мой "программируемый компьютер". То есть сейчас я изобретаю видеокарту..
Цель: что-то вроде ZX-Spectrum, и в игры поиграть, и датчики использовать. Игры, конечно же, буду писать я, именно для этого я его и делаю. После того, как закончу "видеокарту", продолжу писать свой ЯП, только уже для этого компьютера.[/uquote]
Какой самый быстрый способ вывести строку в порт из 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:
[uquote="roman.com",url="/forum/viewtopic.php?p=4640331#p4640331"]-выводить можно в прерывании таймера.
рекомендуется если писать на всяких си и с++
т.е. там где трудно контролировать тайминги.
частота прерываний тоже стабильна... зависит от частоты кварца и больше ни от чего)) если нет других прерываний...

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

и самое главное...
а нафига нам вообще таймер ?
а не лучше ли сразу писать на ассемблере...
в ассемблере все тайминги легко контролировать...
время выполнения всех инструкций в ассемблере так же зависят только от частоты кварца и больше ни от чего))
поэтому в ассемблере ничего не дрожит))[/uquote]
Еще как дрожит, хотя есть способ как это побороть. Допустим написали мы на ассме цикл ожидания флага таймера из двух инструкций выполняемых за 3 такта, в результате выйдем из него с возможным опозданием на 1-2 такта и картинка на экране уедет на пиксель. То же с прерываниями, если в момент его вызова выполнялась 2-х и более тактовая инструкция, то в прерывание попадем с опозданием в 1-3 такта. Похоже вы опытный товарищ, подскажите ТС что в таком случае ему нужно делать? )
SfS
Друг Кота
Сообщения: 19421
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Вопрос программистам

Сообщение SfS »

А если взять не AVR, а esp8266 то можно просто сделать VGA контроллер)

https://github.com/smaffer/espvgax2

Изображение
Аватара пользователя
TovarishAleksey
Потрогал лапой паяльник
Сообщения: 313
Зарегистрирован: Вс сен 22, 2024 12:16:47
Откуда: Село Лютенька

Re: Вопрос программистам

Сообщение TovarishAleksey »

Сфс, а у меня нашлась как раз такая, с вайфаем.
"Умный может зарабатывать триста рублей, а проживать три тысячи"
Adrift
Вымогатель припоя
Сообщения: 553
Зарегистрирован: Вт окт 01, 2024 15:22:33

Re: Вопрос программистам

Сообщение Adrift »

Если ESP, то надо сразу ESP32S3 брать, там аппаратно все поддерживается. Лично я не фанат ESP, особенно которые на Xtensa, но если сравнивать готовые платки, то будет дешевле, чем STM32H7.

Изображение
Вложения
s3.png
(56.66 КБ) 153 скачивания
Ответить

Вернуться в «МЯЯЯУ!»