Fórum témák
» Több friss téma |
Rosszul tetted fel a kérdést, nem "Hogyan lehet megoldani?" hanem "Meg lehet-e oldani?"
PIC-el külső hardver nélkül nem oldod meg a 800x600 se a 640x480 VGA-t Számoljunk: I, A linken amit írtál van egy táblázat VGA timing. Ebben benne van, hogy 800x600: 40MHz, de 640x480 is 25MHz a pixel clock. Ha csak clock utasítást adsz ki, akkor is ennek duplája kell PIC utasításórajelben. És még sehol az adatátküldés, sor és oszlop pozició ellenőrzés. Minimum 10 utasítás órajel a ramból kiszedni és kiküldeni a pixeleket, növelni a poziciót és órajeletadni (fel, le). Tehát minimum 250MHz utasításvégrehajtásra van szükség. Van ilyen PIC? II, kisebbik felbontás 640x480 az 307.200 pixel. Ha RGB full colorban nyomnád az 3szor ennyi byte. De van-e 320Kb RAM-os PIC? Ha lenne hasonló áttat PIC, akkor se maradna sok időd a program igazi futására. Szóval érdemes-e pár ezer forintot spórolni a hardveren?
Ahogy utánaolvastam meglehet oldani, nemszeretnék komoly grafikai műveleteket elvégezni, csak pár pixel kiírása. A mai 32MX szériás picel tervezem megoldani a végleges verziót, az 50-100,000Mhz -es órajellel is megy. Tudom, iszonyatosan tömör program kell, de ez már csak későbbre tervezem. Alapból a problémám, hogy nem látom át, hogyan kell a szinkronjeleket kiküldeni, mennyi ideig kell magason/alacsonyon lennie stb. Ebben kérném a segítségeteket.
Köszönöm!
Szia!
Szerintem pici-nek igaza van, ezt programbol keptelenseg megcsinalni egy 100MHz-ces mikrokontrollerrel. Ha esetleg nem nagyon akarsz hardware-t, van valami Propeller chip-es VGA megfejtes, bar emlekeim szerint az sem tud eleg magas frissitesi frekit, nem megy minden monitoron. De itt a valasz a kerdesedre: # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync Ezek a szamok itt a kovetkezot jelentik: 25.2MHz a pixel clock. Ez az alap orajeled. Az aktiv reszben minden orajelnel ki kell tenni egy pixelnyi adatot. Mondjuk van egy szamlalod, ami 0-rol megy. Az elso 640 orajel az aktiv resz. A 656-odik orajelnel aktivalod a HSYNC-et, a 752-ig orajelnel lekapcsolod. Tehat 96 orajelnyi idore volt aktiv. Aztan meg varsz a 799-ik orajelig es nullazod a szamlalot. Igy egy sor 800 orajel ideig tart. Ha visszaszamolod ki is jon a 31.5kHz. (25.2 Mhz / 800). A kovetkezo negy szam meg ugyanezt adja meg vizszintesen, csak nem orajelekben szamol, hanem sorokban. Tehat van 480 aktiv sor, aztan 10 sor semmi (fekete) majd ket sornyi VSYNC, aztan meg valamennyi fekete, es kezdodik minden elolrol. Osszesen 525 sor egy kep. 31.5kHz / 525 = 60.000Hz. Hat igy mukodik ez. A -hsync es -vsync azt jelentik, hogy mindket szinkronjel polaritasa negativ, de hogy a valosagban ez LOW vagy HIGH szintet jelent a kabelen, azt sajnos nem tudom. Ha megepited, akkor utananezek. Udv, Andor
Szia, köszönöm, ezt emésztem Még olvastam olyat, hogy nem minden pixel 1 órajel, hanem 4 pixel 1 órajel, és így már ugyebár sokkal kissebb teljesítmén is elég, nemtudom erről a 'csalásról' mi a véleményetek ?
Szia, értelmeztem amit írtál, programozási szempontból viszont még ez az nem tiszta.
delay_cycles(640); // ide jönne az aktív videórész delay_cycles(16); itt nincs semmi, ez ahogy tudom a régi lassab monitorok miatt kell delay_cycles(96); HSYNC aktiválása delay_cycles(48); itt lekapcsolom a HSYNCet majd várok 800 ig, és kezdem előlről. ez lenne a hsync, de a vsync hogyan kapcsolódik ehhez? Köszönöm!
A vsync ugy kapcsolodik ehhez, ahogy irtam. Ugyanez a moka van, csak sorokkal:
A hozzászólás módosítva: Feb 15, 2014
Bocsanat az elso hozzaszolasomban rosszul irtam. A masodik 4 szam a ModeLine-ban termeszetesen nem vizszintesen, hanem fuggolegesen ertendo. A legelso szam a dot clock MHz-ben, a kovetkezo negy szam vizszintesen ertendo pixelben, a kovetkezo negy meg fuggolegesen ertendo sorokban szamolva.
A hozzászólás módosítva: Feb 15, 2014
Itt van egy minta 256x200-as felbontásra 48MHzes 8 bites PIC-el: Video game with PIC18. Forráskód is van hozzá, célszerű áttanulmányozni hogy csinálta. Mellékesen még 5 csatornás hang is van hozzá. nem néztem át nagyon a forrást, de gondolom hogy a hangot a sorszinkron jelek közben, a játék logikáját meg a képszinkron ideje alatt csinálja meg. A többi időben nem sok ideje maradhat a procinak a képalkotáson kívül mással törődnie.
Szia, mellesleg milyen hardweres megoldások léteznek, hogy a picnek csak adatot keljen küldeni?
Letezik kettos eleresu SRAM. Az egyik oldalon olvasod ki gyorsan es nyomod bele a kijelzobe, talan valami szamlaloval vagy direkt erre programozott PIC-el.
A masik oldalrol a mikroproci tetszoleges sebesseggel frissitheti. En igy csinalnam.
Sziasztok, a legutóbbi hozzászólásaim óta, kutakodtam még egy kicsit, és rátaláltam, erre és az ehhez hasonló kontrollerekre. Ezekbe van beépített grafikus mag, és ahogy olvastam , ezek maguknak a kijelzőknek a meghajtására van kitalálva, de azért megkérdezem, ezeket valahogy feltudom használni, hogy VGA monitort hajtsak vele?
Köszönöm!
Az igazság az, hogy mindegy, adatokat szeretnék megjeleníteni, szóval számok és betük, de nem lenne hátrány a grafikus megoldás is, de egyenlőre a legegyszerűbb megoldást keresem.(És a legolcsóbbat)
Üdv.! Olvasgattam az idáig "felhalmozódott" hozzászólásokat de sajnos még kicsit zavaros a dolog szóval:
Énis PIC mikrokontrollerrel szeretnék képet generálni ahogy már előttem de nekem elég lenne ha egy bizonyos szinű lenne a teljes képernyő.Mihez van erre szükség? Elegendő a HSYNC és a VSYNC-re a megfelelő frekvenciájú/periódusú jel? Egy LCD képernyővel dolgozom itt az adatlapja aminek a végén találhatók a szinkronizációs frekvenciák.Elég ha előállitom a kivánt jelet majd felhúzom egy fix feszültségre az RGB-t?
Nem elég elvileg (még én is kísérletezek) de a szinkronidők alatt le kell húznod a videójelet, különben nem fog elvileg működni, de ebben nem vagyok biztos, csak az eddigiekből nekem ez jött le.
Belebotlottam egy PIC-es VGA projectbe, ahol a működése is elég jól le van írva. Íme: DIY Single-chip 2D Retro Game Console
Elindítottam a videót és meglepődtem milyen szépen, simán megy az animáció! Van ötlet ebben a projektben !
32 bites pic-el mini számítógép. Itt egy videó is róla.
|
Bejelentkezés
Hirdetés |