Hoi,
ik ben met een projectje in vhdl bezig om een crtscherm aan te sturen via een FPGA (gewoon een kleur weergeven bvb op het scherm).
Het scherm heeft een actief gebied van 640*480 pixels.
Er is ook nog inactief gebied (hsync van 96, H_bp van 48, en H_FP van 16). Voor verticaal zijn er ook inactieve gebieden.
Op internet vond ik een stukje code (teller) die voor horizontaal als volgt werkt:
-- Horiz_sync ------------------------------------__________--------
-- H_count 0 640 659 755 799
Waarom wordt hier eigenlijk eerst tot 659 geteld?
Dat laag signaal, die horiz_sync is die 96, en de teller van 799 is de som van de vier getallen, maar waarom komt die sync-puls net tussen 659 en 755, en waarom niet bvb in het begin?
IF (h_count = 799) THEN
h_count <= "0000000000";
ELSE
h_count <= h_count + 1;
END IF;
--Generate Horizontal Sync Signal using H_count
IF (h_count <= 755) AND (h_count >= 659) THEN
horiz_sync <= '0';
ELSE
horiz_sync <= '1';
END IF;
Amateur19
Overleden
Eens een CO'er, altijd een CO'er. 27MC, 3M-FM en nog meer Schema's en DataSheets
Op 1 april 2006 12:54:11 schreef henkerchief:
Hoi,
ik ben met een projectje in vhdl bezig om een crtscherm aan te sturen via een FPGA (gewoon een kleur weergeven bvb op het scherm).
Het scherm heeft een actief gebied van 640*480 pixels.Er is ook nog inactief gebied (hsync van 96, H_bp van 48, en H_FP van 16). Voor verticaal zijn er ook inactieve gebieden.
??? Meer uitleg. inactief gebied??
Op 1 april 2006 12:54:11 schreef henkerchief:
Op internet vond ik een stukje code (teller) die voor horizontaal als volgt werkt:
-- Horiz_sync ------------------------------------__________--------
-- H_count 0 640 659 755 799Waarom wordt hier eigenlijk eerst tot 659 geteld?
Dat laag signaal, die horiz_sync is die 96, en de teller van 799 is de som van de vier getallen
Welke vier getallen?????
Op 1 april 2006 12:54:11 schreef henkerchief:
maar waarom komt die sync-puls net tussen 659 en 755, en waarom niet bvb in het begin?IF (h_count = 799) THEN
h_count <= "0000000000";
ELSE
h_count <= h_count + 1;
END IF;--Generate Horizontal Sync Signal using H_count
IF (h_count <= 755) AND (h_count >= 659) THEN
horiz_sync <= '0';
ELSE
horiz_sync <= '1';
END IF;
Die 659 erg dicht in de buurt van 1 lijntijd 64µS, maar dat is alleen maar weer voor KTV.(PIC op 4MHz doet 1 count/µS)
Ik denk toch dat het controller en schermdriver afhankelijke getallen zijn die aangeven waneer wel en niet te schrijven en over te springen naar de volgende row/colom.
