Subversion Repositories svnkaklik

Rev

Rev 251 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 251 Rev 410
1
CCS PCM C Compiler, Version 3.245, 27853               22-IV-07 16:12
1
CCS PCM C Compiler, Version 3.245, 27853               22-IV-07 16:12
2
 
2
 
3
               Filename: D:\KAKLIK\projekty\programy\PIC_C\PICcam\873\camerus.lst
3
               Filename: D:\KAKLIK\projekty\programy\PIC_C\PICcam\873\camerus.lst
4
 
4
 
5
               ROM used: 194 words (5%)
5
               ROM used: 194 words (5%)
6
                         Largest free fragment is 2048
6
                         Largest free fragment is 2048
7
               RAM used: 6 (3%) at main() level
7
               RAM used: 6 (3%) at main() level
8
                         7 (4%) worst case
8
                         7 (4%) worst case
9
               Stack:    1 locations
9
               Stack:    1 locations
10
 
10
 
11
*
11
*
12
0000:  MOVLW  00
12
0000:  MOVLW  00
13
0001:  MOVWF  0A
13
0001:  MOVWF  0A
14
0002:  GOTO   029
14
0002:  GOTO   029
15
0003:  NOP
15
0003:  NOP
16
.................... #include ".\camerus.h" 
16
.................... #include ".\camerus.h" 
17
.................... #include <16F873.h> 
17
.................... #include <16F873.h> 
18
.................... //////// Standard Header file for the PIC16F873 device //////////////// 
18
.................... //////// Standard Header file for the PIC16F873 device //////////////// 
19
.................... #device PIC16F873 
19
.................... #device PIC16F873 
20
.................... #list 
20
.................... #list 
21
....................  
21
....................  
22
.................... #device adc=8 
22
.................... #device adc=8 
23
....................  
23
....................  
24
.................... #FUSES NOWDT                 	//No Watch Dog Timer 
24
.................... #FUSES NOWDT                 	//No Watch Dog Timer 
25
.................... #FUSES XT                    	//Crystal osc <= 4mhz 
25
.................... #FUSES XT                    	//Crystal osc <= 4mhz 
26
.................... #FUSES NOPUT                 	//No Power Up Timer 
26
.................... #FUSES NOPUT                 	//No Power Up Timer 
27
.................... #FUSES NOPROTECT             	//Code not protected from reading 
27
.................... #FUSES NOPROTECT             	//Code not protected from reading 
28
.................... #FUSES NOBROWNOUT            	//No brownout reset 
28
.................... #FUSES NOBROWNOUT            	//No brownout reset 
29
.................... #FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O 
29
.................... #FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O 
30
.................... #FUSES NOCPD                 	//No EE protection 
30
.................... #FUSES NOCPD                 	//No EE protection 
31
.................... #FUSES NOWRT                 	//Program memory not write protected 
31
.................... #FUSES NOWRT                 	//Program memory not write protected 
32
.................... #FUSES NODEBUG               	//No Debug mode for ICD 
32
.................... #FUSES NODEBUG               	//No Debug mode for ICD 
33
....................  
33
....................  
34
.................... #use delay(clock=4000000) 
34
.................... #use delay(clock=4000000) 
35
0004:  MOVLW  26
35
0004:  MOVLW  26
36
0005:  MOVWF  04
36
0005:  MOVWF  04
37
0006:  MOVF   00,W
37
0006:  MOVF   00,W
38
0007:  BTFSC  03.2
38
0007:  BTFSC  03.2
39
0008:  GOTO   018
39
0008:  GOTO   018
40
0009:  MOVLW  01
40
0009:  MOVLW  01
41
000A:  MOVWF  21
41
000A:  MOVWF  21
42
000B:  CLRF   20
42
000B:  CLRF   20
43
000C:  DECFSZ 20,F
43
000C:  DECFSZ 20,F
44
000D:  GOTO   00C
44
000D:  GOTO   00C
45
000E:  DECFSZ 21,F
45
000E:  DECFSZ 21,F
46
000F:  GOTO   00B
46
000F:  GOTO   00B
47
0010:  MOVLW  4A
47
0010:  MOVLW  4A
48
0011:  MOVWF  20
48
0011:  MOVWF  20
49
0012:  DECFSZ 20,F
49
0012:  DECFSZ 20,F
50
0013:  GOTO   012
50
0013:  GOTO   012
51
0014:  NOP
51
0014:  NOP
52
0015:  NOP
52
0015:  NOP
53
0016:  DECFSZ 00,F
53
0016:  DECFSZ 00,F
54
0017:  GOTO   009
54
0017:  GOTO   009
55
0018:  RETLW  00
55
0018:  RETLW  00
56
.................... #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_HW) 
56
.................... #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_HW) 
57
0019:  BCF    14.7
57
0019:  BCF    14.7
58
001A:  BCF    0C.3
58
001A:  BCF    0C.3
59
001B:  MOVF   26,W
59
001B:  MOVF   26,W
60
001C:  MOVWF  13
60
001C:  MOVWF  13
61
001D:  MOVLW  02
61
001D:  MOVLW  02
62
001E:  BTFSC  14.7
62
001E:  BTFSC  14.7
63
001F:  GOTO   027
63
001F:  GOTO   027
64
0020:  BTFSS  0C.3
64
0020:  BTFSS  0C.3
65
0021:  GOTO   020
65
0021:  GOTO   020
66
0022:  MOVLW  00
66
0022:  MOVLW  00
67
0023:  BSF    03.5
67
0023:  BSF    03.5
68
0024:  BTFSC  11.6
68
0024:  BTFSC  11.6
69
0025:  MOVLW  01
69
0025:  MOVLW  01
70
0026:  BCF    03.5
70
0026:  BCF    03.5
71
0027:  MOVWF  21
71
0027:  MOVWF  21
72
0028:  RETLW  00
72
0028:  RETLW  00
73
*
73
*
74
0041:  MOVLW  FF
74
0041:  MOVLW  FF
75
0042:  BCF    03.5
75
0042:  BCF    03.5
76
0043:  MOVWF  25
76
0043:  MOVWF  25
77
....................  
77
....................  
78
....................  
78
....................  
79
....................  
79
....................  
80
.................... #define  CAMERA_ADR   0xC4 
80
.................... #define  CAMERA_ADR   0xC4 
81
....................  
81
....................  
82
....................  
82
....................  
83
.................... void main() 
83
.................... void main() 
84
.................... { 
84
.................... { 
85
*
85
*
86
0029:  CLRF   04
86
0029:  CLRF   04
87
002A:  MOVLW  1F
87
002A:  MOVLW  1F
88
002B:  ANDWF  03,F
88
002B:  ANDWF  03,F
89
002C:  BSF    25.3
89
002C:  BSF    25.3
90
002D:  MOVF   25,W
90
002D:  MOVF   25,W
91
002E:  BSF    03.5
91
002E:  BSF    03.5
92
002F:  MOVWF  07
92
002F:  MOVWF  07
93
0030:  BCF    03.5
93
0030:  BCF    03.5
94
0031:  BSF    25.4
94
0031:  BSF    25.4
95
0032:  MOVF   25,W
95
0032:  MOVF   25,W
96
0033:  BSF    03.5
96
0033:  BSF    03.5
97
0034:  MOVWF  07
97
0034:  MOVWF  07
98
0035:  MOVLW  01
98
0035:  MOVLW  01
99
0036:  MOVWF  13
99
0036:  MOVWF  13
100
0037:  MOVLW  28
100
0037:  MOVLW  28
101
0038:  BCF    03.5
101
0038:  BCF    03.5
102
0039:  MOVWF  14
102
0039:  MOVWF  14
103
003A:  BSF    03.5
103
003A:  BSF    03.5
104
003B:  BCF    14.7
104
003B:  BCF    14.7
105
003C:  BCF    14.6
105
003C:  BCF    14.6
106
003D:  BSF    1F.0
106
003D:  BSF    1F.0
107
003E:  BSF    1F.1
107
003E:  BSF    1F.1
108
003F:  BSF    1F.2
108
003F:  BSF    1F.2
109
0040:  BCF    1F.3
109
0040:  BCF    1F.3
110
....................    setup_adc_ports(NO_ANALOGS); 
110
....................    setup_adc_ports(NO_ANALOGS); 
111
*
111
*
112
0044:  BSF    03.5
112
0044:  BSF    03.5
113
0045:  BSF    1F.0
113
0045:  BSF    1F.0
114
0046:  BSF    1F.1
114
0046:  BSF    1F.1
115
0047:  BSF    1F.2
115
0047:  BSF    1F.2
116
0048:  BCF    1F.3
116
0048:  BCF    1F.3
117
....................    setup_adc(ADC_OFF); 
117
....................    setup_adc(ADC_OFF); 
118
0049:  BCF    03.5
118
0049:  BCF    03.5
119
004A:  BCF    1F.0
119
004A:  BCF    1F.0
120
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
120
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
121
004B:  BSF    03.5
121
004B:  BSF    03.5
122
004C:  MOVF   01,W
122
004C:  MOVF   01,W
123
004D:  ANDLW  C7
123
004D:  ANDLW  C7
124
004E:  IORLW  08
124
004E:  IORLW  08
125
004F:  MOVWF  01
125
004F:  MOVWF  01
126
....................    setup_timer_1(T1_DISABLED); 
126
....................    setup_timer_1(T1_DISABLED); 
127
0050:  BCF    03.5
127
0050:  BCF    03.5
128
0051:  CLRF   10
128
0051:  CLRF   10
129
....................    setup_timer_2(T2_DISABLED,0,1); 
129
....................    setup_timer_2(T2_DISABLED,0,1); 
130
0052:  MOVLW  00
130
0052:  MOVLW  00
131
0053:  MOVWF  21
131
0053:  MOVWF  21
132
0054:  MOVWF  12
132
0054:  MOVWF  12
133
0055:  MOVLW  00
133
0055:  MOVLW  00
134
0056:  BSF    03.5
134
0056:  BSF    03.5
135
0057:  MOVWF  12
135
0057:  MOVWF  12
136
....................  
136
....................  
137
....................    output_high(PIN_C0); 
137
....................    output_high(PIN_C0); 
138
0058:  BCF    03.5
138
0058:  BCF    03.5
139
0059:  BCF    25.0
139
0059:  BCF    25.0
140
005A:  MOVF   25,W
140
005A:  MOVF   25,W
141
005B:  BSF    03.5
141
005B:  BSF    03.5
142
005C:  MOVWF  07
142
005C:  MOVWF  07
143
005D:  BCF    03.5
143
005D:  BCF    03.5
144
005E:  BSF    07.0
144
005E:  BSF    07.0
145
....................    output_low(PIN_C6); 
145
....................    output_low(PIN_C6); 
146
005F:  BCF    25.6
146
005F:  BCF    25.6
147
0060:  MOVF   25,W
147
0060:  MOVF   25,W
148
0061:  BSF    03.5
148
0061:  BSF    03.5
149
0062:  MOVWF  07
149
0062:  MOVWF  07
150
0063:  BCF    03.5
150
0063:  BCF    03.5
151
0064:  BCF    07.6
151
0064:  BCF    07.6
152
....................  
152
....................  
153
....................    Delay_ms(200); 
153
....................    Delay_ms(200); 
154
0065:  MOVLW  C8
154
0065:  MOVLW  C8
155
0066:  MOVWF  26
155
0066:  MOVWF  26
156
0067:  CALL   004
156
0067:  CALL   004
157
....................    output_low(PIN_C0); 
157
....................    output_low(PIN_C0); 
158
0068:  BCF    25.0
158
0068:  BCF    25.0
159
0069:  MOVF   25,W
159
0069:  MOVF   25,W
160
006A:  BSF    03.5
160
006A:  BSF    03.5
161
006B:  MOVWF  07
161
006B:  MOVWF  07
162
006C:  BCF    03.5
162
006C:  BCF    03.5
163
006D:  BCF    07.0
163
006D:  BCF    07.0
164
....................    Delay_ms(200); 
164
....................    Delay_ms(200); 
165
006E:  MOVLW  C8
165
006E:  MOVLW  C8
166
006F:  MOVWF  26
166
006F:  MOVWF  26
167
0070:  CALL   004
167
0070:  CALL   004
168
....................    output_high(PIN_C0); 
168
....................    output_high(PIN_C0); 
169
0071:  BCF    25.0
169
0071:  BCF    25.0
170
0072:  MOVF   25,W
170
0072:  MOVF   25,W
171
0073:  BSF    03.5
171
0073:  BSF    03.5
172
0074:  MOVWF  07
172
0074:  MOVWF  07
173
0075:  BCF    03.5
173
0075:  BCF    03.5
174
0076:  BSF    07.0
174
0076:  BSF    07.0
175
....................  
175
....................  
176
....................    i2c_start();      // Reset 
176
....................    i2c_start();      // Reset 
177
0077:  BSF    03.5
177
0077:  BSF    03.5
178
0078:  BSF    11.0
178
0078:  BSF    11.0
179
0079:  BTFSC  11.0
179
0079:  BTFSC  11.0
180
007A:  GOTO   079
180
007A:  GOTO   079
181
....................    i2c_write(CAMERA_ADR); 
181
....................    i2c_write(CAMERA_ADR); 
182
007B:  MOVLW  C4
182
007B:  MOVLW  C4
183
007C:  BCF    03.5
183
007C:  BCF    03.5
184
007D:  MOVWF  26
184
007D:  MOVWF  26
185
007E:  CALL   019
185
007E:  CALL   019
186
....................    i2c_write(0x12); 
186
....................    i2c_write(0x12); 
187
007F:  MOVLW  12
187
007F:  MOVLW  12
188
0080:  MOVWF  26
188
0080:  MOVWF  26
189
0081:  CALL   019
189
0081:  CALL   019
190
....................    i2c_write(0x80 | 0x24); 
190
....................    i2c_write(0x80 | 0x24); 
191
0082:  MOVLW  A4
191
0082:  MOVLW  A4
192
0083:  MOVWF  26
192
0083:  MOVWF  26
193
0084:  CALL   019
193
0084:  CALL   019
194
....................    i2c_stop(); 
194
....................    i2c_stop(); 
195
0085:  BSF    03.5
195
0085:  BSF    03.5
196
0086:  BSF    11.2
196
0086:  BSF    11.2
197
0087:  BTFSC  11.2
197
0087:  BTFSC  11.2
198
0088:  GOTO   087
198
0088:  GOTO   087
199
....................  
199
....................  
200
.................... // **** Write data => Adr($13) = 0x05 **** 
200
.................... // **** Write data => Adr($13) = 0x05 **** 
201
.................... // This will tri-state the Y and UV busses on the OV6620, which 
201
.................... // This will tri-state the Y and UV busses on the OV6620, which 
202
.................... // will allow re-programming of the atmega8 to proceed at startup 
202
.................... // will allow re-programming of the atmega8 to proceed at startup 
203
.................... // if needed. 
203
.................... // if needed. 
204
....................  
204
....................  
205
....................    i2c_start(); 
205
....................    i2c_start(); 
206
0089:  BSF    11.0
206
0089:  BSF    11.0
207
008A:  BTFSC  11.0
207
008A:  BTFSC  11.0
208
008B:  GOTO   08A
208
008B:  GOTO   08A
209
....................    i2c_write(CAMERA_ADR); 
209
....................    i2c_write(CAMERA_ADR); 
210
008C:  MOVLW  C4
210
008C:  MOVLW  C4
211
008D:  BCF    03.5
211
008D:  BCF    03.5
212
008E:  MOVWF  26
212
008E:  MOVWF  26
213
008F:  CALL   019
213
008F:  CALL   019
214
....................    i2c_write(0x13); 
214
....................    i2c_write(0x13); 
215
0090:  MOVLW  13
215
0090:  MOVLW  13
216
0091:  MOVWF  26
216
0091:  MOVWF  26
217
0092:  CALL   019
217
0092:  CALL   019
218
....................    i2c_write(0x05); 
218
....................    i2c_write(0x05); 
219
0093:  MOVLW  05
219
0093:  MOVLW  05
220
0094:  MOVWF  26
220
0094:  MOVWF  26
221
0095:  CALL   019
221
0095:  CALL   019
222
....................    i2c_stop(); 
222
....................    i2c_stop(); 
223
0096:  BSF    03.5
223
0096:  BSF    03.5
224
0097:  BSF    11.2
224
0097:  BSF    11.2
225
0098:  BTFSC  11.2
225
0098:  BTFSC  11.2
226
0099:  GOTO   098
226
0099:  GOTO   098
227
....................  
227
....................  
228
....................    Delay_ms(250); 
228
....................    Delay_ms(250); 
229
009A:  MOVLW  FA
229
009A:  MOVLW  FA
230
009B:  BCF    03.5
230
009B:  BCF    03.5
231
009C:  MOVWF  26
231
009C:  MOVWF  26
232
009D:  CALL   004
232
009D:  CALL   004
233
....................  
233
....................  
234
.................... //**** Write data => Adr($3F) = 0x42 **** 
234
.................... //**** Write data => Adr($3F) = 0x42 **** 
235
.................... // This will turn on the external clock for the atmega8 to use. 
235
.................... // This will turn on the external clock for the atmega8 to use. 
236
....................  
236
....................  
237
....................    i2c_start(); 
237
....................    i2c_start(); 
238
009E:  BSF    03.5
238
009E:  BSF    03.5
239
009F:  BSF    11.0
239
009F:  BSF    11.0
240
00A0:  BTFSC  11.0
240
00A0:  BTFSC  11.0
241
00A1:  GOTO   0A0
241
00A1:  GOTO   0A0
242
....................    i2c_write(CAMERA_ADR); 
242
....................    i2c_write(CAMERA_ADR); 
243
00A2:  MOVLW  C4
243
00A2:  MOVLW  C4
244
00A3:  BCF    03.5
244
00A3:  BCF    03.5
245
00A4:  MOVWF  26
245
00A4:  MOVWF  26
246
00A5:  CALL   019
246
00A5:  CALL   019
247
....................    i2c_write(0x3F); 
247
....................    i2c_write(0x3F); 
248
00A6:  MOVLW  3F
248
00A6:  MOVLW  3F
249
00A7:  MOVWF  26
249
00A7:  MOVWF  26
250
00A8:  CALL   019
250
00A8:  CALL   019
251
....................    i2c_write(0x42); 
251
....................    i2c_write(0x42); 
252
00A9:  MOVLW  42
252
00A9:  MOVLW  42
253
00AA:  MOVWF  26
253
00AA:  MOVWF  26
254
00AB:  CALL   019
254
00AB:  CALL   019
255
....................    i2c_stop(); 
255
....................    i2c_stop(); 
256
00AC:  BSF    03.5
256
00AC:  BSF    03.5
257
00AD:  BSF    11.2
257
00AD:  BSF    11.2
258
00AE:  BTFSC  11.2
258
00AE:  BTFSC  11.2
259
00AF:  GOTO   0AE
259
00AF:  GOTO   0AE
260
....................  
260
....................  
261
.................... // Wait for a short amount of time for the external clock 
261
.................... // Wait for a short amount of time for the external clock 
262
.................... // to stabilize 
262
.................... // to stabilize 
263
....................  
263
....................  
264
....................    Delay_ms(250); 
264
....................    Delay_ms(250); 
265
00B0:  MOVLW  FA
265
00B0:  MOVLW  FA
266
00B1:  BCF    03.5
266
00B1:  BCF    03.5
267
00B2:  MOVWF  26
267
00B2:  MOVWF  26
268
00B3:  CALL   004
268
00B3:  CALL   004
269
....................  
269
....................  
270
....................  
270
....................  
271
....................    output_low(PIN_C0); 
271
....................    output_low(PIN_C0); 
272
00B4:  BCF    25.0
272
00B4:  BCF    25.0
273
00B5:  MOVF   25,W
273
00B5:  MOVF   25,W
274
00B6:  BSF    03.5
274
00B6:  BSF    03.5
275
00B7:  MOVWF  07
275
00B7:  MOVWF  07
276
00B8:  BCF    03.5
276
00B8:  BCF    03.5
277
00B9:  BCF    07.0
277
00B9:  BCF    07.0
278
....................  
278
....................  
279
.................... // turn on the mega8 by releasing the reset line 
279
.................... // turn on the mega8 by releasing the reset line 
280
....................    output_high(PIN_C6); 
280
....................    output_high(PIN_C6); 
281
00BA:  BCF    25.6
281
00BA:  BCF    25.6
282
00BB:  MOVF   25,W
282
00BB:  MOVF   25,W
283
00BC:  BSF    03.5
283
00BC:  BSF    03.5
284
00BD:  MOVWF  07
284
00BD:  MOVWF  07
285
00BE:  BCF    03.5
285
00BE:  BCF    03.5
286
00BF:  BSF    07.6
286
00BF:  BSF    07.6
287
....................  
287
....................  
288
....................    while(true); 
288
....................    while(true); 
289
00C0:  GOTO   0C0
289
00C0:  GOTO   0C0
290
.................... } 
290
.................... } 
291
00C1:  SLEEP
291
00C1:  SLEEP
292
 
292
 
293
Configuration Fuses:
293
Configuration Fuses:
294
   Word  1: 3F39   XT NOWDT NOPUT NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG
294
   Word  1: 3F39   XT NOWDT NOPUT NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG