OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [altera_de0_nano_soc/] [software/] [apps/] [gfx_demo/] [demo_2bpp.c] - Blame information for rev 222

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 221 olivier.gi
#include "demo.h"
2
#include "timerA.h"
3
#include "gfx_controller.h"
4
 
5
//---------------------------------------------------//
6
// 8BPP DEMO
7
//---------------------------------------------------//
8
void demo_2bpp(void) {
9
 
10
  unsigned int  line, column;
11
  unsigned int  color        = 0;
12
  unsigned int  x_coord      = 0;
13
  unsigned int  y_coord      = 0;
14 222 olivier.gi
  unsigned int  palette      = 0;
15
  unsigned int  bg_color     = 0;
16 221 olivier.gi
 
17
  const uint16_t offset_x    = 35;
18
  const uint16_t offset_y    = 95;
19
  const uint16_t char_width  =  7;
20
 
21
  // Screen introduction
22 222 olivier.gi
  gpu_fill (PIX_ADDR(0,                                    0                    ), 320,          480,          0x0000, DST_SWAP_NONE); // Background
23 221 olivier.gi
 
24 222 olivier.gi
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+1*char_width, offset_y+0*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE); // 2
25
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+0*char_width, offset_y+1*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
26
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+4*char_width, offset_y+1*char_width), 1*char_width, 2*char_width, 0x0003, DST_SWAP_NONE);
27
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+3*char_width, offset_y+3*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
28
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+2*char_width, offset_y+4*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
29
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+1*char_width, offset_y+5*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
30
  gpu_fill (PIX_ADDR(offset_x+1*6*char_width+0*char_width, offset_y+6*char_width), 5*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
31 221 olivier.gi
 
32 222 olivier.gi
  gpu_fill (PIX_ADDR(offset_x+3*6*char_width+0*char_width, offset_y+0*char_width), 1*char_width, 6*char_width, 0x0003, DST_SWAP_NONE); // b
33
  gpu_fill (PIX_ADDR(offset_x+3*6*char_width+1*char_width, offset_y+6*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
34
  gpu_fill (PIX_ADDR(offset_x+3*6*char_width+1*char_width, offset_y+4*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
35
  gpu_fill (PIX_ADDR(offset_x+3*6*char_width+2*char_width, offset_y+3*char_width), 2*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
36
  gpu_fill (PIX_ADDR(offset_x+3*6*char_width+4*char_width, offset_y+4*char_width), 1*char_width, 2*char_width, 0x0003, DST_SWAP_NONE);
37 221 olivier.gi
 
38 222 olivier.gi
  gpu_fill (PIX_ADDR(offset_x+4*6*char_width+0*char_width, offset_y+2*char_width), 1*char_width, 5*char_width, 0x0003, DST_SWAP_NONE); // p
39
  gpu_fill (PIX_ADDR(offset_x+4*6*char_width+1*char_width, offset_y+2*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
40
  gpu_fill (PIX_ADDR(offset_x+4*6*char_width+1*char_width, offset_y+4*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
41
  gpu_fill (PIX_ADDR(offset_x+4*6*char_width+4*char_width, offset_y+3*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
42 221 olivier.gi
 
43 222 olivier.gi
  gpu_fill (PIX_ADDR(offset_x+5*6*char_width+0*char_width, offset_y+2*char_width), 1*char_width, 5*char_width, 0x0003, DST_SWAP_NONE); // p
44
  gpu_fill (PIX_ADDR(offset_x+5*6*char_width+1*char_width, offset_y+2*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
45
  gpu_fill (PIX_ADDR(offset_x+5*6*char_width+1*char_width, offset_y+4*char_width), 3*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
46
  gpu_fill (PIX_ADDR(offset_x+5*6*char_width+4*char_width, offset_y+3*char_width), 1*char_width, 1*char_width, 0x0003, DST_SWAP_NONE);
47 221 olivier.gi
 
48
  ta_wait_no_lpm(WT_500MS);
49
  ta_wait_no_lpm(WT_500MS);
50
  ta_wait_no_lpm(WT_500MS);
51
  ta_wait_no_lpm(WT_500MS);
52
 
53
  // Clear background
54
  gpu_fill (PIX_ADDR(0,                                    0                    ), 320,          240,          0x0000, DST_SWAP_NONE);
55
 
56
  // Wait for on-going GPU operation to be done before moving on
57
  gpu_wait_done();
58
 
59
  // Fill the screen with all possible colors
60
  color     = 0x0000;
61
  x_coord   = 0;
62
  y_coord   = 0;
63
  for( line = 0; line <2; line = line + 1 ) {
64
    for( column = 0; column < 2; column = column + 1 ) {
65
 
66
      draw_block(PIX_ADDR(x_coord, y_coord), 158, 118, color, DST_SWAP_NONE, 0);
67
      if (color==3) { color= 0;}
68
      else          { color++; }
69
      x_coord += 162;
70
    }
71
    y_coord += 122;
72
    x_coord  =  0;
73
  }
74
  ta_wait_no_lpm(WT_500MS);
75
  ta_wait_no_lpm(WT_500MS);
76
 
77 222 olivier.gi
  // For each palette, try out each background-color
78
  for( palette = 0; palette <6; palette = palette + 1 ) {
79
 
80
    LUT_CFG = (LUT_CFG & ~HW_LUT_PALETTE_MSK) | HW_LUT_BG_BLACK | (palette<<4);
81
    ta_wait_no_lpm(WT_500MS);
82
    ta_wait_no_lpm(WT_500MS);
83
 
84
    for( bg_color = 0; bg_color < 15; bg_color = bg_color + 1 ) {
85
 
86
      LUT_CFG = (LUT_CFG & ~HW_LUT_BGCOLOR_MSK) | (bg_color<<8);
87
 
88
      ta_wait_no_lpm(WT_500MS);
89
    }
90
 
91
    LUT_CFG = (LUT_CFG & ~HW_LUT_BGCOLOR_MSK) | HW_LUT_BG_BLACK;
92
    ta_wait_no_lpm(WT_500MS);
93
    ta_wait_no_lpm(WT_500MS);
94
  }
95
 
96
  // Re-initialize LUT configuration
97
  LUT_CFG = HW_LUT_BG_BLACK     |
98
            HW_LUT_FG_WHITE     |
99
            HW_LUT_PALETTE_0_HI |
100
            SW_LUT_BANK0_SELECT |
101
            SW_LUT_DISABLE;
102 221 olivier.gi
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.