Mercurial > public > mk2
comparison code_part1/OSTC_code_asm_part1/dump_screen.asm @ 330:447390289f47 ScreenDump
NEW screen_dump serial command (l)
author | JeanDo |
---|---|
date | Tue, 10 May 2011 03:18:20 +0200 |
parents | |
children | 469f4861c7c1 |
comparison
equal
deleted
inserted
replaced
329:1adcfb4b4c27 | 330:447390289f47 |
---|---|
1 ;============================================================================= | |
2 ; | |
3 ; File dump_screen.asm | |
4 ; | |
5 ; Dump screen contains to the serial interface. | |
6 ; | |
7 ; This program is free software: you can redistribute it and/or modify | |
8 ; it under the terms of the GNU General Public License as published by | |
9 ; the Free Software Foundation, either version 3 of the License, or | |
10 ; (at your option) any later version. | |
11 ; | |
12 ; This program is distributed in the hope that it will be useful, | |
13 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 ; GNU General Public License for more details. | |
16 ; | |
17 ; You should have received a copy of the GNU General Public License | |
18 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 ; | |
20 ; Copyright (c) 2011, JD Gascuel. | |
21 ;============================================================================= | |
22 ; HISTORY | |
23 ; 2011-05-08 : [jDG] Creation. | |
24 ; | |
25 ; BUGS : | |
26 ; * ... | |
27 ;============================================================================= | |
28 | |
29 ; Manage interface to the OSTC platform: | |
30 dump_screen: | |
31 bcf uart_dump_screen ; clear flag! | |
32 | |
33 movlw 'l' | |
34 movwf TXREG ; Send command echo. | |
35 bsf no_sensor_int ; No Sensor Interrupt | |
36 bcf PIE1,RCIE ; no interrupt for UART | |
37 bcf PIR1,RCIF ; clear flag | |
38 bsf LED_blue ; LEDusb ON | |
39 call rs232_wait_tx ; wait for UART | |
40 | |
41 call dump_screen_0 | |
42 | |
43 bcf no_sensor_int ; Restore Sensor Interrupt | |
44 bcf LED_blue ; Clear led | |
45 bcf LED_red ; Clear led | |
46 bsf PIE1,RCIE ; Interrupt for RS232 | |
47 return | |
48 | |
49 ;============================================================================= | |
50 ; Dump screen contains to the UART | |
51 | |
52 dump_screen_0: | |
53 | |
54 ;---- Send OLED box command for the full screen window ------------------- | |
55 mullw 0 ; PRODH:L <- 0 | |
56 | |
57 AA_CMD_WRITE 0x35 ; VerticalStartAddress HIGH:LOW | |
58 AA_DATA_WRITE_PROD ; 00:00 | |
59 | |
60 AA_CMD_WRITE 0x36 ; VerticalEndAddress HIGH:LOW | |
61 AA_DATA_WRITE 0x01 | |
62 AA_DATA_WRITE 0x3F | |
63 | |
64 AA_CMD_WRITE 0x37 ; HorizontalAddress START:END | |
65 AA_DATA_WRITE 0x00 | |
66 AA_DATA_WRITE 0xEF | |
67 | |
68 AA_CMD_WRITE 0x20 ; Start Address Horizontal (.0 - .239) | |
69 AA_DATA_WRITE_PROD ; 00:00 | |
70 | |
71 AA_CMD_WRITE 0x21 ; Start Address Vertical (.0 - .319) | |
72 AA_DATA_WRITE_PROD ; 00:00 | |
73 | |
74 AA_CMD_WRITE 0x22 ; Start reading. | |
75 rcall PLED_DataRead ; Dummy pixel to skip. | |
76 rcall PLED_DataRead ; Dummy pixel to skip. | |
77 | |
78 movlw .160 ; 160x2 columns | |
79 movwf PRODH | |
80 dump_screen_1: | |
81 btg LED_red ; LEDactivity toggle | |
82 | |
83 movlw .240 ; 240 lines | |
84 movwf PRODL | |
85 | |
86 dump_screen_2: | |
87 setf TRISD ; PortD as input. | |
88 | |
89 rcall PLED_DataRead ; read first pixel-low byte | |
90 movwf TXREG ; send | |
91 call rs232_wait_tx ; wait for UART | |
92 | |
93 rcall PLED_DataRead ; read first pixel-high byte | |
94 movwf TXREG ; send | |
95 call rs232_wait_tx ; wait for UART | |
96 | |
97 rcall PLED_DataRead ; read second pixel-low byte | |
98 movwf TXREG ; send | |
99 call rs232_wait_tx ; wait for UART | |
100 | |
101 rcall PLED_DataRead ; read second pixel-high byte | |
102 movwf TXREG ; send | |
103 call rs232_wait_tx ; wait for UART | |
104 | |
105 clrf TRISD ; Back to normal (PortD as output) | |
106 | |
107 decfsz PRODL,F | |
108 bra dump_screen_2 | |
109 | |
110 AA_CMD_WRITE 0x22 ; Sync high/low byte, again. | |
111 | |
112 decfsz PRODH,F | |
113 bra dump_screen_1 | |
114 | |
115 AA_CMD_WRITE 0x00 ; NOP, to stop Address Update Counter | |
116 return | |
117 |