Demo program to show 640x480 monochrome fullgraphic

Dependencies:   mbed vga640x480g

Committer:
gertk
Date:
Wed Jul 27 19:44:20 2011 +0000
Revision:
0:770395da503c
0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gertk 0:770395da503c 1 /*
gertk 0:770395da503c 2 * 640x480 60Hz fullgraphic monochrome VGA Driver demo program
gertk 0:770395da503c 3 *
gertk 0:770395da503c 4 * Copyright (C) 2011 by Ivo van Poorten <ivop(at)euronet.nl>
gertk 0:770395da503c 5 * and Gert van der Knokke <gertk(at)xs4all.nl>
gertk 0:770395da503c 6 * This file is licensed under the terms of the GNU Lesser
gertk 0:770395da503c 7 * General Public License, version 3.
gertk 0:770395da503c 8 *
gertk 0:770395da503c 9 * Inspired by Simon's (not Ford) Cookbook entry and Cliff Biffle's
gertk 0:770395da503c 10 * assembly code.
gertk 0:770395da503c 11 */
gertk 0:770395da503c 12
gertk 0:770395da503c 13 #include "mbed.h"
gertk 0:770395da503c 14 #include "vga640x480g.h"
gertk 0:770395da503c 15
gertk 0:770395da503c 16 // visual feedback
gertk 0:770395da503c 17 DigitalOut myled(LED1);
gertk 0:770395da503c 18
gertk 0:770395da503c 19 // define serial port for debug
gertk 0:770395da503c 20 Serial linktopc(USBTX,USBRX);
gertk 0:770395da503c 21
gertk 0:770395da503c 22 int main() {
gertk 0:770395da503c 23 // init the VGA subsystem (always do this first!)
gertk 0:770395da503c 24 init_vga();
gertk 0:770395da503c 25
gertk 0:770395da503c 26 int s,t;
gertk 0:770395da503c 27
gertk 0:770395da503c 28 // serial port on at 115200 baud
gertk 0:770395da503c 29 linktopc.baud(115200);
gertk 0:770395da503c 30 setbuf(stdout, NULL); // no buffering for this filehandle
gertk 0:770395da503c 31
gertk 0:770395da503c 32
gertk 0:770395da503c 33 // clear the screen
gertk 0:770395da503c 34 vga_cls();
gertk 0:770395da503c 35
gertk 0:770395da503c 36 // draw some circles
gertk 0:770395da503c 37 for (t=10; t<200; t+=5)
gertk 0:770395da503c 38 vga_circle(20+t,399-t,t,WHITE);
gertk 0:770395da503c 39
gertk 0:770395da503c 40 // draw some boxes
gertk 0:770395da503c 41 for (t=10; t<100; t+=5)
gertk 0:770395da503c 42 vga_box(400+t,100+t,400+t*2,100+t*2,WHITE);
gertk 0:770395da503c 43
gertk 0:770395da503c 44 // circumfence the screen
gertk 0:770395da503c 45 vga_box(0,0,639,479,WHITE);
gertk 0:770395da503c 46
gertk 0:770395da503c 47 // show the complete character set
gertk 0:770395da503c 48 for (s=0; s<4; s++) {
gertk 0:770395da503c 49 for (t=0; t<64; t++) {
gertk 0:770395da503c 50 vga_putchar(20+t*8,20+16*s,t+s*64,WHITE);
gertk 0:770395da503c 51 }
gertk 0:770395da503c 52 }
gertk 0:770395da503c 53
gertk 0:770395da503c 54 // put a string on screen
gertk 0:770395da503c 55 vga_putstring(400,370,"Hello World!",WHITE);
gertk 0:770395da503c 56
gertk 0:770395da503c 57 // draw some lines
gertk 0:770395da503c 58 vga_line(400,390,500,390,WHITE);
gertk 0:770395da503c 59 vga_line(500,475,600,375,WHITE);
gertk 0:770395da503c 60
gertk 0:770395da503c 61 // draw a filled box
gertk 0:770395da503c 62 vga_filledbox(450,330,550,360,1);
gertk 0:770395da503c 63
gertk 0:770395da503c 64 // draw some more boxes
gertk 0:770395da503c 65 for (t=10; t<320; t+=5)
gertk 0:770395da503c 66 vga_box(100+t,440-t/16,110+t,440+t/16,WHITE);
gertk 0:770395da503c 67
gertk 0:770395da503c 68
gertk 0:770395da503c 69 // all done
gertk 0:770395da503c 70 while (1){
gertk 0:770395da503c 71 wait(1);
gertk 0:770395da503c 72 myled=!myled;
gertk 0:770395da503c 73 }
gertk 0:770395da503c 74 }