[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640431#p4640431"]Сфс, а у меня нашлась как раз такая, с вайфаем.[/uquote]
Ну схема там есть, прошивка тоже)
Добавлено after 2 hours 28 minutes 51 second:
[uquote="Adrift",url="/forum/viewtopic.php?p=4640435#p4640435"]Если ESP, то надо сразу ESP32S3 брать, там аппаратно все поддерживается. Лично я не фанат ESP, особенно которые на Xtensa, но если сравнивать готовые платки, то будет дешевле, чем STM32H7.[/uquote]
[uquote="SfS",url="/forum/viewtopic.php?p=4640444#p4640444"]Ну вга там нет))[/uquote]
VSYNC, HSYNC и 16 бит данных там есть, что еще нужно для VGA? R-2R и вперед. Для сравнения модуль LTDC из STM32H7:
Pico2 даже R-2R не нужен, 8 резисторов и будет 24-х битных цвет через HDMI/DVI-D.
[uquote="Adrift",url="/forum/viewtopic.php?p=4640491#p4640491"][uquote="SfS",url="/forum/viewtopic.php?p=4640444#p4640444"]Ну вга там нет))[/uquote]
VSYNC, HSYNC и 16 бит данных там есть, что еще нужно для VGA? R-2R и вперед. Для сравнения модуль LTDC из STM32H7:
Pico2 даже R-2R не нужен, 8 резисторов и будет 24-х битных цвет через HDMI/DVI-D.[/uquote]
Ну синки ладно. А как цифровой цвет в аналоговый ВГА без ЦАП?
Добавлено after 6 minutes 29 seconds:
Вот здесь все ж резисторами сделали:
ЦАП - это Цифро-Аналоговый Преобразователь. На входе - цифра, на выходе - аналог, или так: на входе - нулики-единички, на выходе - соответствующий уровень напряжения.
16 цветов... Ну вот стандартный РГБ вход, это ты 3 бита выводишь. И ещё четвёртый к каждому из этих сигналов резистором подмешай - типа повышенная яркость. Все возможные сочетания этих 4 бит и дадут тебе 16 цветов.
[uquote="Adrift",url="/forum/viewtopic.php?p=4640416#p4640416"]Похоже вы опытный товарищ, подскажите ТС что в таком случае ему нужно делать? )[/uquote]
я уже подсказал - отказаться от таймеров и писать на чистом асме.
SfS писал(а):при разрешении 320, на один пиксель по горизонтали приходится 78,6нс примерно
что значит примерно ? ))
1/16МГц = 62,5нс один такт ардуины.
в строке VGA есть "рабочее поле"... куда мы запихиваем наши пиксели)) остальное это импульсы синхронизации и гашения...
значит мы можем вывести с ардуины на экран картинку разрешением максимум 402 x 480
а всего у нас получается 402 * 480 = 192960 пикcеля)) объём буфера...
[uquote="roman.com",url="/forum/viewtopic.php?p=4640521#p4640521"]я уже подсказал - отказаться от таймеров и писать на чистом асме.[/uquote]
На прошлой странице вы утверждали, что на таймерах уже все сделали и я задолбаюсь высчитывать машинные такты с NOP, а теперь агитируете отказаться от таймеров? )
[uquote="roman.com",url="/forum/viewtopic.php?p=4640521#p4640521"][uquote="Adrift",url="/forum/viewtopic.php?p=4640416#p4640416"]Похоже вы опытный товарищ, подскажите ТС что в таком случае ему нужно делать? )[/uquote]
я уже подсказал - отказаться от таймеров и писать на чистом асме.
SfS писал(а):при разрешении 320, на один пиксель по горизонтали приходится 78,6нс примерно
что значит примерно ? ))
1/16МГц = 62,5нс один такт ардуины.
в строке VGA есть "рабочее поле"... куда мы запихиваем наши пиксели)) остальное это импульсы синхронизации и гашения...
строка.jpg
сколько можно запихнуть в одну строку пикcелей ?
25,17 мкс / 62,5 нс = максимум 402 пикселя...
а сколько строк в кадре ? 480
кадры.png
значит мы можем вывести с ардуины на экран картинку разрешением максимум 402 x 480
а всего у нас получается 402 * 480 = 192960 пикcеля)) объём буфера... [/uquote]
1 такт это хорошо. но надо же ещё и считать выводимую информацию. Из памяти. А за один такт считать и записать не получится.
Фунтик, понял, спасибо.
Роман, да мне даже меньше требуется. Только как рассчитать задержки, это вопрос.
В принципе, использовать нопы будет проще, но на чистом асме писать - нет программатора, тем более я уже почти изучил прерывания по таймерам.
Вот то что картинка на пол экрана как раз мне и не нравится. Какое-то решение должно быть, хотя бы расстянуть картинку, пусть она и не ровной будет.
пример из библиотеки VGAX. Разрешение 120 на 60, а растянуто на весь экран..
"Умный может зарабатывать триста рублей, а проживать три тысячи"
[uquote="roman.com",url="/forum/viewtopic.php?p=4640535#p4640535"]опять всё смешали в кучу...
на таймерах уже сделали синхронизацию... строчную..[/uquote]
Я задал конкретный вопрос, что делать для избежания джиттера после попадания в прерывание от таймера по HSYNC или ожидания флага таймера в простейшей цикле на ассме, вы ответили, что отказаться от таймеров и писать все на ассме ) А знаете как борются с джиттером в той же VGAX, пикты от которой вы постили? Добавляя третий таймер )
Adrift писал(а):А знаете как борются с джиттером в той же VGAX... Добавляя третий таймер
не знаю... не пробовал... не думал...
я пишу на ассме потому что у меня нет лишних тактов... и прерываний на асме у меня нет... это пустая трата тактов))
а что ещё можно вывести за один такт ? да много чего ! ))
Фунтик, скачивал atmel studio. Чтоб писать на avr asm программатор не нужен, а вот чтобы залить этот код в микроконтроллер - без него никак. Мою ардуину программа не видела.
Роман, так здесь 9 тактов.
"Умный может зарабатывать триста рублей, а проживать три тысячи"
_1:
//красный
OUT PORTD, R21 // -1 такт
OUT PORTD, R21 // -1 такт
OUT PORTD, R21 // -1 такт
...
//зелёный
OUT PORTD, R22 // -1 такт
OUT PORTD, R22 // -1 такт
OUT PORTD, R22 // -1 такт
...
//синий
OUT PORTD, R23 // -1 такт
OUT PORTD, R23 // -1 такт
OUT PORTD, R23 // -1 такт
...
RJMP _1
[uquote="TovarishAleksey",url="/forum/viewtopic.php?p=4640565#p4640565"]чтобы залить этот код в микроконтроллер - без него никак.[/uquote]
блин... как же ты собрался делать копутер на куче AVR без программатора...
сделай... из старой ардуины))
Обойдусь пока без программатора, а то ещё на неделю затянется.
Объясните как из этого получается 256:
TCCR1B = (1 << CS12);
Говорят, что CS12 это 2, непонятно почему, соответственно мы сдвигаем двойку на 1 бит в лево и должны получить 4, но получаем 256.
"Умный может зарабатывать триста рублей, а проживать три тысячи"