Rev 410 | Blame | Compare with Previous | Last modification | View Log | Download
CCS PCM C Compiler, Version 3.245, 27853 22-IV-07 16:12Filename: D:\KAKLIK\projekty\programy\PIC_C\PICcam\873\camerus.lstROM used: 194 words (5%)Largest free fragment is 2048RAM used: 6 (3%) at main() level7 (4%) worst caseStack: 1 locations*0000: MOVLW 000001: MOVWF 0A0002: GOTO 0290003: NOP.................... #include ".\camerus.h".................... #include <16F873.h>.................... //////// Standard Header file for the PIC16F873 device ////////////////.................... #device PIC16F873.................... #list........................................ #device adc=8........................................ #FUSES NOWDT //No Watch Dog Timer.................... #FUSES XT //Crystal osc <= 4mhz.................... #FUSES NOPUT //No Power Up Timer.................... #FUSES NOPROTECT //Code not protected from reading.................... #FUSES NOBROWNOUT //No brownout reset.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O.................... #FUSES NOCPD //No EE protection.................... #FUSES NOWRT //Program memory not write protected.................... #FUSES NODEBUG //No Debug mode for ICD........................................ #use delay(clock=4000000)0004: MOVLW 260005: MOVWF 040006: MOVF 00,W0007: BTFSC 03.20008: GOTO 0180009: MOVLW 01000A: MOVWF 21000B: CLRF 20000C: DECFSZ 20,F000D: GOTO 00C000E: DECFSZ 21,F000F: GOTO 00B0010: MOVLW 4A0011: MOVWF 200012: DECFSZ 20,F0013: GOTO 0120014: NOP0015: NOP0016: DECFSZ 00,F0017: GOTO 0090018: RETLW 00.................... #use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,force_HW)0019: BCF 14.7001A: BCF 0C.3001B: MOVF 26,W001C: MOVWF 13001D: MOVLW 02001E: BTFSC 14.7001F: GOTO 0270020: BTFSS 0C.30021: GOTO 0200022: MOVLW 000023: BSF 03.50024: BTFSC 11.60025: MOVLW 010026: BCF 03.50027: MOVWF 210028: RETLW 00*0041: MOVLW FF0042: BCF 03.50043: MOVWF 25................................................................................ #define CAMERA_ADR 0xC4............................................................ void main().................... {*0029: CLRF 04002A: MOVLW 1F002B: ANDWF 03,F002C: BSF 25.3002D: MOVF 25,W002E: BSF 03.5002F: MOVWF 070030: BCF 03.50031: BSF 25.40032: MOVF 25,W0033: BSF 03.50034: MOVWF 070035: MOVLW 010036: MOVWF 130037: MOVLW 280038: BCF 03.50039: MOVWF 14003A: BSF 03.5003B: BCF 14.7003C: BCF 14.6003D: BSF 1F.0003E: BSF 1F.1003F: BSF 1F.20040: BCF 1F.3.................... setup_adc_ports(NO_ANALOGS);*0044: BSF 03.50045: BSF 1F.00046: BSF 1F.10047: BSF 1F.20048: BCF 1F.3.................... setup_adc(ADC_OFF);0049: BCF 03.5004A: BCF 1F.0.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);004B: BSF 03.5004C: MOVF 01,W004D: ANDLW C7004E: IORLW 08004F: MOVWF 01.................... setup_timer_1(T1_DISABLED);0050: BCF 03.50051: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);0052: MOVLW 000053: MOVWF 210054: MOVWF 120055: MOVLW 000056: BSF 03.50057: MOVWF 12........................................ output_high(PIN_C0);0058: BCF 03.50059: BCF 25.0005A: MOVF 25,W005B: BSF 03.5005C: MOVWF 07005D: BCF 03.5005E: BSF 07.0.................... output_low(PIN_C6);005F: BCF 25.60060: MOVF 25,W0061: BSF 03.50062: MOVWF 070063: BCF 03.50064: BCF 07.6........................................ Delay_ms(200);0065: MOVLW C80066: MOVWF 260067: CALL 004.................... output_low(PIN_C0);0068: BCF 25.00069: MOVF 25,W006A: BSF 03.5006B: MOVWF 07006C: BCF 03.5006D: BCF 07.0.................... Delay_ms(200);006E: MOVLW C8006F: MOVWF 260070: CALL 004.................... output_high(PIN_C0);0071: BCF 25.00072: MOVF 25,W0073: BSF 03.50074: MOVWF 070075: BCF 03.50076: BSF 07.0........................................ i2c_start(); // Reset0077: BSF 03.50078: BSF 11.00079: BTFSC 11.0007A: GOTO 079.................... i2c_write(CAMERA_ADR);007B: MOVLW C4007C: BCF 03.5007D: MOVWF 26007E: CALL 019.................... i2c_write(0x12);007F: MOVLW 120080: MOVWF 260081: CALL 019.................... i2c_write(0x80 | 0x24);0082: MOVLW A40083: MOVWF 260084: CALL 019.................... i2c_stop();0085: BSF 03.50086: BSF 11.20087: BTFSC 11.20088: GOTO 087........................................ // **** Write data => Adr($13) = 0x05 ****.................... // This will tri-state the Y and UV busses on the OV6620, which.................... // will allow re-programming of the atmega8 to proceed at startup.................... // if needed......................................... i2c_start();0089: BSF 11.0008A: BTFSC 11.0008B: GOTO 08A.................... i2c_write(CAMERA_ADR);008C: MOVLW C4008D: BCF 03.5008E: MOVWF 26008F: CALL 019.................... i2c_write(0x13);0090: MOVLW 130091: MOVWF 260092: CALL 019.................... i2c_write(0x05);0093: MOVLW 050094: MOVWF 260095: CALL 019.................... i2c_stop();0096: BSF 03.50097: BSF 11.20098: BTFSC 11.20099: GOTO 098........................................ Delay_ms(250);009A: MOVLW FA009B: BCF 03.5009C: MOVWF 26009D: CALL 004........................................ //**** Write data => Adr($3F) = 0x42 ****.................... // This will turn on the external clock for the atmega8 to use......................................... i2c_start();009E: BSF 03.5009F: BSF 11.000A0: BTFSC 11.000A1: GOTO 0A0.................... i2c_write(CAMERA_ADR);00A2: MOVLW C400A3: BCF 03.500A4: MOVWF 2600A5: CALL 019.................... i2c_write(0x3F);00A6: MOVLW 3F00A7: MOVWF 2600A8: CALL 019.................... i2c_write(0x42);00A9: MOVLW 4200AA: MOVWF 2600AB: CALL 019.................... i2c_stop();00AC: BSF 03.500AD: BSF 11.200AE: BTFSC 11.200AF: GOTO 0AE........................................ // Wait for a short amount of time for the external clock.................... // to stabilize........................................ Delay_ms(250);00B0: MOVLW FA00B1: BCF 03.500B2: MOVWF 2600B3: CALL 004............................................................ output_low(PIN_C0);00B4: BCF 25.000B5: MOVF 25,W00B6: BSF 03.500B7: MOVWF 0700B8: BCF 03.500B9: BCF 07.0........................................ // turn on the mega8 by releasing the reset line.................... output_high(PIN_C6);00BA: BCF 25.600BB: MOVF 25,W00BC: BSF 03.500BD: MOVWF 0700BE: BCF 03.500BF: BSF 07.6........................................ while(true);00C0: GOTO 0C0.................... }00C1: SLEEPConfiguration Fuses:Word 1: 3F39 XT NOWDT NOPUT NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG