#define HORIZ_PIXELS 240 // must be multiple of 8 #define HORIZ_FRONT_PORCH 10 #define HORIZ_SYNC 7 #define HORIZ_BACK_PORCH 5 #define VERT_PIXELS 320 #define VERT_FRONT_PORCH 63 #define VERT_SYNC 4 #define VERT_BACK_PORCH 23//*/ /*#define HORIZ_PIXELS 120 #define HORIZ_FRONT_PORCH 25 #define HORIZ_SYNC 7 #define HORIZ_BACK_PORCH 5 #define VERT_PIXELS 480 #define VERT_FRONT_PORCH 10 #define VERT_SYNC 2 #define VERT_BACK_PORCH 18//*/ // DO NOT CHANGE BELOW // this calculates values to give to the uPD7220D. #define HORIZ_WORDS (HORIZ_PIXELS>>2) #define MEMORY_SIZE HORIZ_WORDS*VERT_PIXELS extern void write(byte adr, byte data); void setup_video(){ write(1, 0); // reset write(0, 0x10); // operation mode write(0, HORIZ_WORDS - 2); // uPD needs 2 subtracted. write(0, (VERT_SYNC<<5)|(HORIZ_SYNC-1)); write(0, ((HORIZ_FRONT_PORCH-1)<<2)|(VERT_SYNC>>3)); write(0, (HORIZ_BACK_PORCH-1)&63); write(0, VERT_FRONT_PORCH&63); write(0, VERT_PIXELS&255); write(0, (VERT_BACK_PORCH<<2)|(VERT_PIXELS>>8)); write(1, 0x6f); // set master video mode // set pitch write(1, 0x47); write(0, HORIZ_WORDS); // set some PRAM values write(1, 0x70); write(0, 0x00); write(0, 0x00); write(0, (VERT_PIXELS<<4)&255); write(0, VERT_PIXELS>>4);//*/ write(1, 0x4B); // CCHAR write(0, 0x00); write(0, 0xC0); // set zoom write(1,0x46); write(0,0x00); Serial.println("Starting..."); write(1, 0x6b); // start write(1, 0x0D); }