Jump to content

    

__inline__

Участник
  • Content Count

    725
  • Joined

  • Last visited

Community Reputation

0 Обычный

About __inline__

  • Rank
    Знающий

Recent Profile Visitors

1675 profile views
  1. Можно подумать, что МК со встроенным микроконтроллером устранит оптические недостатки матрицы LCD :) Тему закрываю по причинам: флуд, недостаточная компетенция участников форума, вопрос решён.
  2. Мне тоже очень хочется многое. Только в отличие от вас, я не терроризирую форумчан дурацкими вопросами, а читаю соответствующую литературу. Здесь за вас никто не будет делать вашу работу. Берите в зубы буквари и статьи из интернета, даташиты микросхем, каталоги магазинов - и вперёд!
  3. Хорош порожняк гнать в тему! Потому что программа разрабатывалась под ПК где монитор 60 Гц. При 120 FPS всё идёт быстро в 2 раза )))
  4. Я не рассказываю полный бред. Своим глазам я верю больше, чем анонимам с форума. Я сюда пришёл с конкретными вопросами, а получил кучу флуда, которого от вас больше всего. Это говно. Держал такой в руках, в динамике картинки с артефактами. Мне вот как раз есть чем заниматься. А вам с DASM'ом похоже, что нет. )) И как интерфейс подключения влияет на качество картинки матрицы LCD? Бред написали. Провели эксперимент. Показали движущиеся картинки с дисплея приставки SEGA MD Portable нескольким людям. Всех всё устроило, а меня нет. Из замеченных мною недостатков были: 1) малые углы обзора 2) белёсость чёрного 3) смазывание пикселов на мозаичных(шахматных) элементах 4) ненасыщенные цвета 5) "золотой" оттенок изображения 6) Полоски при движении Лишь только пару человек смог убедить в половине недостатков, остальным всё идёт. Так что если быдло хавает дерьмо, почему я должен согласиться с тем что дисплеи IPS хороши? Кота в мешке не собираюсь покупать. Всегда смотрю дисплеи в действии на телефонах - если устраивает - выковыриваю. И кстати, дисплей тоже с контроллером Ilitek !!! (надо же! и тут совпадение! ))) все дисплеи с белой пластмассовой каёмкой и удобопаяемым гибким шлейфом вместо разъёма - Г О В Н О ! ! ! Что такое "нормальные контроллеры" ? Дайте определение. Есть ли такой инженерный термин вообще? Есть параллельная шина, допускающая подключение дисплеев по ней. Особенно когда есть DMA и сопроцессоры. Совершенно верно. На повестку дня выношу затерянный в дебрях флуда актуальный вопрос:
  5. Это как-то не стыкуется с вашим утверждением в первом посте: Зачем так извращенствовать? Выход ЦАП через разделительный конденсатор 0,01 - 1 мкФ (неполярный) на вход этого УНЧ. Нужна регулировочная громкость? - поставьте переменный резистор вместо Rf=20 кОм на схеме - через ОС будете управлять громкостью. Делал так в своих поделках, отлично работает. Кстати. Может будет интересно в плане схемотехники и позаимствования сорцов декодеров звука и вывод на ЦАП STM32. Мой проект nanoPlayer с открытыми исходниками: https://vrtp.ru/index.php?showtopic=29688 Если что, печатные платы от него у меня ещё есть - для самостоятельной сборки. Пишите в личку. Будет и видео и звук. )) Схема: https://vrtp.ru/index.php?act=Attach&type=post&id=772221 В действии:
  6. У меня интересы чисто хоббийные: найти телек на местной барахолке не составляет никаких проблем - было бы желание! Это в назидание страждущим, кто думает что ЭЛТ умерли. Не дождутся! )) Вот совсем недавно зарелизил игровую консоль BlackPrism Portable: Дисплей LCD в ней от телефона LG GX 500. Смотрится красночно и ярко. Не то что илитековские матрицы с которыми приходилось иметь дело: Дисплей поддерживает до 128 Гц кадровой развёртки и возможно переключение между фреймовой инверсией и строчной. Поставил первую, чтобы картинка была хорошей. Ну и отзыв ещё одного человека, кто подключил этот дисплей: http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov?page=53#comment-495611 Это как раз тот случай, когда качество картинки меня удовлетворяет. А полосы убираются удвоением частоты развёртки + включением фреймовой инверсии вместо строчной. Сейчас продумываю концепт десктопной версии - BlackPrism DeskTop. И там будет видеовыход на ТВ.
  7. Знаю. Но проследил такую закономерность: если чип от Ilitek, значит матрица - говно. Потому что китайцы. А они очень любят Ilitek )) С чего это вдруг? Активно используем для получения гладкого движения изображений! Что касается IPS, то : На этом можно поставить крест: для моих целей не годится. Только для вывода статичных голых баб, как подметил DASM :)
  8. Глянул дисплеи по приведенным вами ссылкам - они все на базе Ilitek'овского контроллера, а это - говно по определению. Я уже вдоволь нажрался илитековского говна в ардуино-шилд-дисплеях: не устроило качество картинки - под разными углами плохо показывает, цвета белёсые, уровень чёрного хреновый и - те же полоски что в начале темы. Дисплей от GX500 который использую намного лучше вышеозначенных. Илитеком недоволен в плане оптики - качество изображения годится разве что для индикации в технических приборах. Смотреть видео или играть в игры на таких дисплеях я бы не хотел и другим не рекомендую. Статья про IPS и AMOLED. https://www.iphones.ru/iNotes/amoled-protiv-ips-v-kraskah-primerah-i-testah-05-26-2019 В общем, дерьмо эти IPS.... ЭЛТ лучше будет!
  9. Мне бы что-нибудь с шиной 8 или 16 бит как интерфейс SRAM P.S. Проблему решил: оставил развёртку 120 Гц + 2 VSYNC для процессинга 60 FPS. Всё работает ниче не мерцает полоски ушли. Я доволен, но пришлось немного попотеть )))
  10. Да не за что )) Вы можете это проделать сами очень легко - ничего сложного !
  11. Пирамида Маслоу... Жажда к творчеству. Бабы её не заменяют. ))) Ничто не помешает. Вылезет какой-нить артефакт типа смазывания картинки при движении или в полосках всё будет. Ну и какова скорость обмена данными с таким дисплеем? Мне надо не ниже 60 кадров в секунду отрисовывать на 400x240, при этом цвет не хуже 16 бит.
  12. Сомнительно, что IPS будет отлично казать вот такую вещь (с 960-й секунды): https://www.youtube.com/watch?v=VlaP-7SIHz0&t=960
  13. Вы видать незнакомы с аркадными автоматами начала 80-хх - конца 90-х ))). 320x240 там не нужна чёткость, наоборот, небольшое размытие там даже на руку ибо квадраты не видны. Сомневаюсь, что вы их взяли чтобы спрайты гонять. ))) На просмотре видео эффект не будет себя проявлять. Только если будет скролл картинки по горизонтали
  14. Ещё бы знать какой IPS окажется нормальным :) Много дисплеев разных покупал, оставался доволен только OLED'ами, так как они как-будто созданы для 2D-анимации. Мне нужно, чтобы нарисованные на дисплее спрайты двигались плавно на +1 пиксел за 1 VSYNC. При этом если спрайт начинает: шлейфить, мазать, кривиться или мерцать вертикальными полосками (как в сообщении в шапке темы), то дисплей объявляю неподходящим для моих целей. А голых баб статичных выводить может каждый LCD, другое дело, что будет с картинкой, если её начать плавно крутить по горизонтали на +1 пиксел за 1 рефреш дисплея?
  15. Потестировал этот GCC, получил листинг. Параллельность есть, но она слабенькая в отличие от TI CC. Команда: c6x-uclinux-g++ -S -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -march=c674x -O3 -fomit-frame-pointer -ffast-math -fno-rtti -fno-exceptions -Dc6745 -DNDEBUG -c PPU16.cpp Код: #include <stdlib.h> #include "PPU16.h" #define VRAM_BUFFER 0xC0800000 /* Bank1 SDRAM */ #define VIDEO_CACHE 0x11800000 /* 240 x 400 pixel buffer */ #define PRUSS_VideoBuffer (*(IO u32*)(PRU1_Data+0x0000)) #define SROM16 (*(u16*)SROMOffset) #define VRAM16 (*(u16*)VRAMOffset) u8 *VRAMBuffer=(u8*)VRAM_BUFFER; const u8 *SROMBuffer; //SROM Buffer - Pointer u32 SPRITE_PITCH=2048; //Default Sprite Width: 1024 pixel #define _amem8(x) (*(x)) #define _mem8(x) (*(x)) void PPU16_ClearVRAM(u16 Color) { u64 c=Color|(Color<<16); c|=(c<<32); u64 * __restrict vb=(u64*)VRAMBuffer; // #pragma UNROLL(4) for(int i=0;i<(SCREEN_WIDTH*SCREEN_HEIGHT)>>2;i++)_amem8(&vb[i])=c; } void PPU16_OutOLED(void) { for(int y=0;y<(SCREEN_HEIGHT<<1);y+=8) { u64 * __restrict vc=(u64*)(VIDEO_CACHE+y); u64 * __restrict vb0=(u64*)&VRAMBuffer[((SCREEN_WIDTH-4)<<1)+(SCREEN_WIDTH*y)]; u64 * __restrict vb1=vb0+(SCREEN_WIDTH>>2); u64 * __restrict vb2=vb1+(SCREEN_WIDTH>>2); u64 * __restrict vb3=vb2+(SCREEN_WIDTH>>2); for(int x=0;x<(SCREEN_WIDTH>>2);x++) { _amem8(&vc[(3*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16) _amem8(&vb0[-x]) ))|((u64)((u16) _amem8(&vb1[-x]) )<<16)|((u64)((u16) _amem8(&vb2[-x]) )<<32)|((u64)((u16) _amem8(&vb3[-x]) )<<48); _amem8(&vc[(2*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>16)))|((u64)((u16)(_amem8(&vb1[-x])>>16))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>16))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>16))<<48); _amem8(&vc[(1*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>32)))|((u64)((u16)(_amem8(&vb1[-x])>>32))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>32))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>32))<<48); _amem8(&vc[(0*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>48)))|((u64)((u16)(_amem8(&vb1[-x])>>48))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>48))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>48))<<48); } } } Даёт такой листинг: Слабовато. И _mem8, _amem8 не знает, пришлось задефайнить разыменовыванием указателей, что не совсем верно.