comparison src/tft.inc @ 634:4050675965ea

3.10 stable release
author heinrichsweikamp
date Tue, 28 Apr 2020 17:34:31 +0200
parents cd58f7fc86db
children 75e90cd0c2c3
comparison
equal deleted inserted replaced
633:690c48db7b5b 634:4050675965ea
1 ;============================================================================= 1 ;=============================================================================
2 ; 2 ;
3 ; File tft.inc combined next generation V3.03.7 3 ; File tft.inc * combined next generation V3.09.4m
4 ; 4 ;
5 ; Declaring interfaces to the TFT screen and its Oxxx controler 5 ; Declaring interfaces to the TFT screen and its Oxxx controler
6 ; 6 ;
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
8 ;============================================================================= 8 ;=============================================================================
9 ; HISTORY 9 ; HISTORY
10 ; 2011-05-24 : [jDG] Cleanups from initial Matthias code. 10 ; 2011-05-24 : [jDG] Cleanups from initial Matthias code.
11 11
12 ;=============================================================================
13 ; TFT public subroutines
14 ;=============================================================================
15 12
16 ;----------------------------------------------------------------------------- 13 ;-----------------------------------------------------------------------------
17 ; Write two half-pixels at position (win_top,win_leftx2) 14 ; public Functions
18 ;
19 ; Inputs : win_leftx2, win_top, win_color:2
20 ; Outputs: (none)
21 ; Trashed: WREG, PROD
22 15
23 extern pixel_write 16 extern TFT_DisplayOff ; power-off everything (needs a boot thereafter)
17 extern TFT_boot ; initialize screen hardware
18 extern TFT_Display_FadeIn ; smooth lighting up
19 extern TFT_Display_FadeOut ; smooth darkening down
20 extern TFT_ClearScreen ; clear screen
21
22 extern TFT_box_write ; send TFT window address
23 extern TFT_set_color ; set output color
24 ; extern pixel_write ; draw two half-pixels at position (win_top,win_leftx2 )
25 extern pixel_write_col320 ; draw two half-pixels at position (win_top,PRODH:PRODL)
26 extern half_vertical_line ; draw a vertical line of half-pixels at (win_top,win_leftx2,win_height)
27 extern half_horizontal_line ; draw a horizontal line of half-pixels at (win_top,win_leftx2,win_width)
28
29 IFDEF _screendump
30 extern TFT_dump_screen ; send a screenshot via the serial interface immediately
31 extern TFT_dump_screen_check ; send a screenshot via the serial interface on command
32 ENDIF
24 33
25 34
26 ;----------------------------------------------------------------------------- 35 ;-----------------------------------------------------------------------------
27 ; Write one half-pixel at position (win_top,win_leftx2) 36 ; low Level Macros (for aa_wordprocessor and color_processor)
28 ; 37 ;
29 ; Inputs : win_leftx2, win_top, win_color:2
30 ; Outputs: (none)
31 ; Trashed: WREG, PROD
32 38
33 extern half_pixel_write 39 Index_out macro low_b
40 movlw low_b
41 extern TFT_CmdWrite
42 call TFT_CmdWrite
43 endm
34 44
35 45
36 ;----------------------------------------------------------------------------- 46 ;-----------------------------------------------------------------------------
37 ; Draw a frame around current box with current color 47 ; colored Boxes
38 ; Inputs : win_top, win_leftx2, win_height, win_width, win_color1, win_color2
39 ; Outputs: (none)
40 ; Trashed: WREG, PROD, aa_start:2, aa_end:2, win_leftx2, win_width:1
41 48
42 extern TFT_frame 49 WIN_BOX_BLACK macro top, bottom, left, right ; black box (erase scree area)
50 extern box_black_block
51 call box_black_block
52 db top, (bottom)-(top)+1, left, (right)-(left)+1
53 endm
54
55 WIN_BOX_STD macro top, bottom, left, right ; white box
56 extern box_std_block
57 call box_std_block
58 db top, (bottom)-(top)+1, left, (right)-(left)+1
59 endm
60
61 WIN_BOX_COLOR macro top, bottom, left, right ; box with color from WREG
62 extern box_color_block
63 call box_color_block
64 db top, (bottom)-(top)+1, left, (right)-(left)+1
65 endm
66
67 BOX_COLOR macro ; box with color from WREG and pre-set coordinates
68 extern box_color
69 call box_color
70 endm
71
72 BOX macro ; box with pre-set color and coordinates
73 extern TFT_box
74 call TFT_box
75 endm
43 76
44 77
45 ;----------------------------------------------------------------------------- 78 ;-----------------------------------------------------------------------------
46 extern TFT_DisplayOff ; power-off everything (needs a boot thereafter) 79 ; colored Frames
47 extern TFT_boot ; initialize screen hardware
48 extern TFT_Display_FadeIn ; smooth lighting up
49 extern TFT_Display_FadeOut ; smooth darkening down
50 extern TFT_ClearScreen
51 extern TFT_box_write
52 extern TFT_box_write_16bit_win_left ; with column in PRODL:PRODH
53 extern TFT_box
54 extern TFT_DataWrite_PROD
55 extern TFT_set_color
56 ; extern init_pixel_write
57 extern pixel_write
58 extern pixel_write_col320
59 extern half_vertical_line
60 extern half_horizontal_line
61 80
62 IFDEF _screendump 81 WIN_FRAME_STD macro top, bottom, left, right ; white frame
63 extern TFT_dump_screen 82 extern box_frame_std
64 extern TFT_dump_screen_check 83 call box_frame_std
65 ENDIF 84 db top, (bottom)-(top)+1, left, (right)-(left)+1
85 endm
86
87 WIN_FRAME_COLOR macro top, bottom, left, right ; frame with color from WREG
88 extern box_frame_color
89 call box_frame_color
90 db top, (bottom)-(top)+1, left, (right)-(left)+1
91 endm
66 92
67 93
68 ;============================================================================= 94 ;-----------------------------------------------------------------------------
69 ; Low level macros (for aa_wordprocessor and color_processor) 95 ; set individual Coordinates
70 ; 96
71 extern TFT_CmdWrite 97 WIN_TOP macro win_top_input
72 Index_out macro low_b 98 movlw win_top_input
73 movlw low_b 99 movwf win_top
74 call TFT_CmdWrite 100 endm
75 endm
76 101
77 102
78 ;============================================================================= 103 WIN_HEIGHT macro win_hight_input
79 ; shortcuts for TFT_box and TFT_frame call sequences 104 movlw win_hight_input
80 ; 105 movwf win_height
81 extern box_frame_std, box_frame_common, box_frame_color, box_frame_color16 106 endm
82 extern box_std_block, box_black_block, box_color_block
83
84 ; Erase a given screen area
85 ;
86 WIN_BOX_BLACK macro top, bottom, left, right
87 call box_black_block
88 db top, (bottom)-(top)+1, left, (right)-(left)+1
89 endm
90 107
91 108
92 ; Fill a given screen area with standard color (white) 109 WIN_LEFT macro win_leftx2_input
93 ; 110 movlw win_leftx2_input
94 WIN_BOX_STD macro top, bottom, left, right 111 movwf win_leftx2
95 call box_std_block 112 endm
96 db top, (bottom)-(top)+1, left, (right)-(left)+1
97 endm
98 113
99 114
100 ; Fill a given screen area with color from WREG (8 bits rrrgggbb) 115 WIN_WIDTH macro win_width_input
101 ; 116 movlw win_width_input
102 WIN_BOX_COLOR macro top, bottom, left, right 117 movwf win_width
103 call box_color_block 118 endm
104 db top, (bottom)-(top)+1, left, (right)-(left)+1
105 endm
106
107 ; Draw a frame in standard color (white)
108 ;
109 WIN_FRAME_STD macro top, bottom, left, right
110 call box_frame_std
111 db top, (bottom)-(top)+1, left, (right)-(left)+1
112 endm
113 119
114 120
115 ; Draw a frame with color from WREG (8 bits rrrgggbb) 121 ;-----------------------------------------------------------------------------
122 ; Paint an Image stored in Program Memory, Image referenced by a Label
116 ; 123 ;
117 WIN_FRAME_COLOR macro top, bottom, left, right
118 call box_frame_color
119 db top, (bottom)-(top)+1, left, (right)-(left)+1
120 endm
121
122
123 ; Draw a frame with color from win_color (16 bits in TFT format)
124 ;
125 WIN_FRAME_COLOR16 macro top, bottom, left, right
126 call box_frame_color16
127 db top, (bottom)-(top)+1, left, (right)-(left)+1
128 endm
129
130
131 WIN_FONT macro win_font_input
132 movlw win_font_input
133 movff WREG,win_font
134 endm
135
136
137 WIN_TOP macro win_top_input
138 movlw win_top_input
139 movff WREG,win_top
140 endm
141
142
143 WIN_HEIGHT macro win_hight_input
144 movlw win_hight_input
145 movff WREG,win_height
146 endm
147
148
149 WIN_LEFT macro win_left_input
150 movlw win_left_input
151 movff WREG,win_leftx2
152 endm
153
154
155 WIN_WIDTH macro win_width_input
156 movlw win_width_input
157 movff WREG,win_width
158 endm
159
160
161 WIN_COLOR macro win_color_input
162 movlw win_color_input
163 call TFT_set_color
164 endm
165
166 ;=============================================================================
167 ; TFT_write_prom_image
168 ;
169
170 ; image referenced by a label
171 TFT_WRITE_PROM_IMAGE_BY_LABEL macro image_label 124 TFT_WRITE_PROM_IMAGE_BY_LABEL macro image_label
172 extern image_label 125 extern image_label
173 movlw LOW (image_label) 126 movlw LOW (image_label)
174 movwf TBLPTRL 127 movwf TBLPTRL
175 movlw HIGH (image_label) 128 movlw HIGH (image_label)
178 movwf TBLPTRU 131 movwf TBLPTRU
179 extern color_image 132 extern color_image
180 call color_image 133 call color_image
181 endm 134 endm
182 135
183 ; image referenced by an address 136
137 ;-----------------------------------------------------------------------------
138 ; Paint an Image stored in Program Memory, image referenced by an address
139 ;
184 TFT_WRITE_PROM_IMAGE_BY_ADDR macro image_address 140 TFT_WRITE_PROM_IMAGE_BY_ADDR macro image_address
185 movlw LOW (image_address) 141 movlw LOW (image_address)
186 movwf TBLPTRL 142 movwf TBLPTRL
187 movlw HIGH (image_address & 0xFFFF) 143 movlw HIGH (image_address & 0xFFFF)
188 movwf TBLPTRH 144 movwf TBLPTRH
190 movwf TBLPTRU 146 movwf TBLPTRU
191 extern color_image 147 extern color_image
192 call color_image 148 call color_image
193 endm 149 endm
194 150
195 ; custom colors referenced by label 151
152 ;-----------------------------------------------------------------------------
153 ; Load a Custom Color Palette (to be call before TFT_WRITE_PROM_IMAGE*)
154 ;
196 TFT_WRITE_PROM_IMAGE_CUST_COLOR macro colors_label 155 TFT_WRITE_PROM_IMAGE_CUST_COLOR macro colors_label
197 movlw LOW (colors_label) 156 movlw LOW (colors_label)
198 movwf TBLPTRL 157 movwf TBLPTRL
199 movlw HIGH (colors_label) 158 movlw HIGH (colors_label)
200 movwf TBLPTRH 159 movwf TBLPTRH
201 movlw UPPER (colors_label) 160 movlw UPPER (colors_label)
202 movwf TBLPTRU 161 movwf TBLPTRU
203 extern get_colors 162 extern get_colors
204 call get_colors 163 call get_colors
205 bsf use_custom_colors ; will suppress reading the colors that come with the image 164 bsf use_custom_colors ; suppress the colors that come with the image
206 endm 165 endm
207 166
208 167
209 ;============================================================================= 168
210 ; Macros to provide our own interface code 169 ;-----------------------------------------------------------------------------
170 ; Pixel Writing Macros
211 ; 171 ;
212 172
213 PIXEL_WRITE macro colRegister, rowRegister 173 PIXEL_WRITE macro colRegister, rowRegister
214 movff colRegister,win_leftx2 174 movff colRegister,win_leftx2
215 movff rowRegister,win_top 175 movff rowRegister,win_top
216 call pixel_write 176 extern pixel_write
217 endm 177 call pixel_write
178 endm
218 179
219 180
220 ;INIT_PIXEL_WRITE macro colRegister 181 ;INIT_PIXEL_WRITE macro colRegister
221 ; movff colRegister,win_leftx2 182 ; movff colRegister,win_leftx2
222 ; call init_pixel_write 183 ; extern init_pixel_write
223 ; endm 184 ; call init_pixel_write
185 ; endm
224 186
225 187
226 HALF_PIXEL_WRITE macro rowRegister 188 HALF_PIXEL_WRITE macro rowRegister
227 movff rowRegister,win_top 189 movff rowRegister,win_top
228 call half_pixel_write 190 extern half_pixel_write
229 endm 191 call half_pixel_write
192 endm
193
194 ;-----------------------------------------------------------------------------