|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 9:35 pm
| Автор |
Съобщение |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
 12F675 и CCS
здравеите колеги,
имам следния проблем, Пи6а си програмка за 12Ф675 на ццс компилирам сорса и ко да видя в АСМ фаила:
демек, туи не6то след 5-та инструкция спира програмата, ето го и сорса, но не вярвам да е от него защото като го променя да пасва за 16ф84, си па4ка без проблеми (сорса нее завършен, но поне не спира като го компилна за 16ф84).
това е сорса за 12ф675.
някви идеи защо става така?
|
| Пон Фев 06, 2006 5:04 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
А на компилатора какъв тип контролер си задал.
Това
откъде ти идва, щом като пишеш за 675.
|
| Пон Фев 06, 2006 5:11 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
хмммм, сега го забелязах.....няям идея от де идва
това е в cct1.h, демек е оказано 4е ще е за 12ф675.....няям идея....мойе би идва от ic-prog-а.....
|
| Пон Фев 06, 2006 5:22 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Ето какво излиза след компилация на сорса който си дал:
 |  |  |  | Код: MPASM
CCS PCM C Compiler, Version 3.241, 28193 06-Ôåâðóàðè-06 16:22
Filename: C:\myfile\prog\pic\c\ccsc\test.lst
ROM used: 232 words (23%) Largest free fragment is 792 RAM used: 20 (31%) at main() level 21 (33%) worst case Stack: 1 worst case (0 in main + 1 for interrupts)
0000 3000 00001 MOVLW 00 0001 008A 00002 MOVWF 0A 0002 2851 00003 GOTO 051 0003 0000 00004 NOP 0004 1A83 00005 BTFSC 03.5 0005 280A 00006 GOTO 00A 0006 00A5 00007 MOVWF 25 0007 0E03 00008 SWAPF 03,W 0008 00A6 00009 MOVWF 26 0009 280F 00010 GOTO 00F 000A 1283 00011 BCF 03.5 000B 00A5 00012 MOVWF 25 000C 0E03 00013 SWAPF 03,W 000D 00A6 00014 MOVWF 26 000E 14A6 00015 BSF 26.1 000F 080A 00016 MOVF 0A,W 0010 00AD 00017 MOVWF 2D 0011 018A 00018 CLRF 0A 0012 1383 00019 BCF 03.7 0013 0EA5 00020 SWAPF 25,F 0014 0804 00021 MOVF 04,W 0015 00A7 00022 MOVWF 27 0016 0820 00023 MOVF 20,W 0017 00A8 00024 MOVWF 28 0018 0821 00025 MOVF 21,W 0019 00A9 00026 MOVWF 29 001A 0822 00027 MOVF 22,W 001B 00AA 00028 MOVWF 2A 001C 0823 00029 MOVF 23,W 001D 00AB 00030 MOVWF 2B 001E 0824 00031 MOVF 24,W 001F 00AC 00032 MOVWF 2C 0020 1283 00033 BCF 03.5 0021 1E8B 00034 BTFSS 0B.5 0022 2825 00035 GOTO 025 0023 190B 00036 BTFSC 0B.2 0024 283A 00037 GOTO 03A 0025 0827 00038 MOVF 27,W 0026 0084 00039 MOVWF 04 0027 0828 00040 MOVF 28,W 0028 00A0 00041 MOVWF 20 0029 0829 00042 MOVF 29,W 002A 00A1 00043 MOVWF 21 002B 082A 00044 MOVF 2A,W 002C 00A2 00045 MOVWF 22 002D 082B 00046 MOVF 2B,W 002E 00A3 00047 MOVWF 23 002F 082C 00048 MOVF 2C,W 0030 00A4 00049 MOVWF 24 0031 082D 00050 MOVF 2D,W 0032 008A 00051 MOVWF 0A 0033 0E26 00052 SWAPF 26,W 0034 0083 00053 MOVWF 03 0035 1283 00054 BCF 03.5 0036 0E25 00055 SWAPF 25,W 0037 18A6 00056 BTFSC 26.1 0038 1683 00057 BSF 03.5 0039 0009 00058 RETFIE 0000 00059 .................... #include <12F675.h> 0000 00060 .................... //////// Standard Header file for the PIC12F675 device //////////////// 0000 00061 .................... #device PIC12F675 0000 00470 .................... #list 0000 00471 .................... 0000 00472 .................... #use delay(Clock=4000000) 0000 00473 .................... 0000 00474 .................... int8 blink,b; 0000 00475 .................... int16 count; 0000 00476 .................... 0000 00477 .................... #int_RTCC 0000 00478 .................... RTCC_isr() 0000 00479 .................... { 0000 00480 .................... if( input(PIN_a1)==0 ) 003A 1683 00481 BSF 03.5 003B 1485 00482 BSF 05.1 003C 3000 00483 MOVLW 00 003D 1283 00484 BCF 03.5 003E 1885 00485 BTFSC 05.1 003F 3001 00486 MOVLW 01 0040 3A00 00487 XORLW 00 0041 1D03 00488 BTFSS 03.2 0042 2847 00489 GOTO 047 0000 00490 .................... { 0000 00491 .................... blink=1; 0043 3001 00492 MOVLW 01 0044 00AE 00493 MOVWF 2E 0000 00494 .................... b=0; 0045 01AF 00495 CLRF 2F 0000 00496 .................... } 0000 00497 .................... else 0046 284E 00498 GOTO 04E 0000 00499 .................... { 0000 00500 .................... b++; 0047 0AAF 00501 INCF 2F,F 0000 00502 .................... if(b==25) 0048 082F 00503 MOVF 2F,W 0049 3C19 00504 SUBLW 19 004A 1D03 00505 BTFSS 03.2 004B 284E 00506 GOTO 04E 0000 00507 .................... { 0000 00508 .................... blink=0; 004C 01AE 00509 CLRF 2E 0000 00510 .................... b=0; 004D 01AF 00511 CLRF 2F 0000 00512 .................... } 0000 00513 .................... } 0000 00514 .................... 0000 00515 .................... } 0000 00516 .................... 0000 00517 .................... 0000 00518 .................... 004E 110B 00519 BCF 0B.2 004F 118A 00520 BCF 0A.3 0050 2825 00521 GOTO 025 0000 00522 .................... void main() 0051 23FF 00523 CALL 3FF 0052 1683 00524 BSF 03.5 0053 0090 00525 MOVWF 10 0054 0184 00526 CLRF 04 0055 301F 00527 MOVLW 1F 0056 0583 00528 ANDWF 03,F 0057 1283 00529 BCF 03.5 0058 131F 00530 BCF 1F.6 0059 1683 00531 BSF 03.5 005A 101F 00532 BCF 1F.0 005B 109F 00533 BCF 1F.1 005C 111F 00534 BCF 1F.2 005D 119F 00535 BCF 1F.3 005E 3007 00536 MOVLW 07 005F 1283 00537 BCF 03.5 0060 0099 00538 MOVWF 19 0000 00539 .................... { 0000 00540 .................... 0000 00541 .................... setup_adc_ports(NO_ANALOGS|VSS_VDD); 0061 131F 00542 BCF 1F.6 0062 1683 00543 BSF 03.5 0063 101F 00544 BCF 1F.0 0064 109F 00545 BCF 1F.1 0065 111F 00546 BCF 1F.2 0066 119F 00547 BCF 1F.3 0000 00548 .................... setup_adc(ADC_OFF); 0067 1283 00549 BCF 03.5 0068 101F 00550 BCF 1F.0 0000 00551 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 0069 1683 00552 BSF 03.5 006A 0801 00553 MOVF 01,W 006B 39C7 00554 ANDLW C7 006C 3808 00555 IORLW 08 006D 0081 00556 MOVWF 01 0000 00557 .................... setup_timer_1(T1_DISABLED); 006E 1283 00558 BCF 03.5 006F 0190 00559 CLRF 10 0000 00560 .................... setup_comparator(NC_NC); 0070 3007 00561 MOVLW 07 0071 0099 00562 MOVWF 19 0072 1683 00563 BSF 03.5 0073 0805 00564 MOVF 05,W 0074 3003 00565 MOVLW 03 0075 1283 00566 BCF 03.5 0076 00A0 00567 MOVWF 20 0077 0BA0 00568 DECFSZ 20,F 0078 2877 00569 GOTO 077 0079 0819 00570 MOVF 19,W 007A 118C 00571 BCF 0C.3 0000 00572 .................... setup_vref(FALSE); 007B 1683 00573 BSF 03.5 007C 0199 00574 CLRF 19 0000 00575 .................... enable_interrupts(INT_RTCC); 007D 1283 00576 BCF 03.5 007E 168B 00577 BSF 0B.5 0000 00578 .................... enable_interrupts(GLOBAL); 007F 30C0 00579 MOVLW C0 0080 048B 00580 IORWF 0B,F 0000 00581 .................... set_tris_A(0b00000011); 0081 3003 00582 MOVLW 03 0082 1683 00583 BSF 03.5 0083 0085 00584 MOVWF 05 0000 00585 .................... count=make16(read_eeprom(0),read_eeprom(1)); 0084 019B 00586 CLRF 1B 0085 139C 00587 BCF 1C.7 0086 141C 00588 BSF 1C.0 0087 081A 00589 MOVF 1A,W 0088 1283 00590 BCF 03.5 0089 00B2 00591 MOVWF 32 008A 3001 00592 MOVLW 01 008B 1683 00593 BSF 03.5 008C 009B 00594 MOVWF 1B 008D 139C 00595 BCF 1C.7 008E 141C 00596 BSF 1C.0 008F 081A 00597 MOVF 1A,W 0090 1283 00598 BCF 03.5 0091 00B3 00599 MOVWF 33 0092 0832 00600 MOVF 32,W 0093 00B1 00601 MOVWF 31 0094 0833 00602 MOVF 33,W 0095 00B0 00603 MOVWF 30 0000 00604 .................... 0000 00605 .................... while (true) 0000 00606 .................... { 0000 00607 .................... if ( input(PIN_a0)/*&(!blink)*/ ) 0096 1683 00608 BSF 03.5 0097 1405 00609 BSF 05.0 0098 1283 00610 BCF 03.5 0099 1C05 00611 BTFSS 05.0 009A 28E6 00612 GOTO 0E6 0000 00613 .................... { 0000 00614 .................... delay_us(20); 009B 3006 00615 MOVLW 06 009C 00A0 00616 MOVWF 20 009D 0BA0 00617 DECFSZ 20,F 009E 289D 00618 GOTO 09D 009F 0000 00619 NOP 0000 00620 .................... if ( input(PIN_a0) ) 00A0 1683 00621 BSF 03.5 00A1 1405 00622 BSF 05.0 00A2 1283 00623 BCF 03.5 00A3 1C05 00624 BTFSS 05.0 00A4 28E6 00625 GOTO 0E6 0000 00626 .................... { 0000 00627 .................... count++; 00A5 0AB0 00628 INCF 30,F 00A6 1903 00629 BTFSC 03.2 00A7 0AB1 00630 INCF 31,F 0000 00631 .................... 0000 00632 .................... write_eeprom(0,count>>8);; 00A8 0831 00633 MOVF 31,W 00A9 00B2 00634 MOVWF 32 00AA 01B3 00635 CLRF 33 00AB 1683 00636 BSF 03.5 00AC 019B 00637 CLRF 1B 00AD 1283 00638 BCF 03.5 00AE 0831 00639 MOVF 31,W 00AF 1683 00640 BSF 03.5 00B0 009A 00641 MOVWF 1A 00B1 151C 00642 BSF 1C.2 00B2 1283 00643 BCF 03.5 00B3 080B 00644 MOVF 0B,W 00B4 00A0 00645 MOVWF 20 00B5 138B 00646 BCF 0B.7 00B6 1683 00647 BSF 03.5 00B7 3055 00648 MOVLW 55 00B8 009D 00649 MOVWF 1D 00B9 30AA 00650 MOVLW AA 00BA 009D 00651 MOVWF 1D 00BB 149C 00652 BSF 1C.1 00BC 189C 00653 BTFSC 1C.1 00BD 28BC 00654 GOTO 0BC 00BE 111C 00655 BCF 1C.2 00BF 1283 00656 BCF 03.5 00C0 0820 00657 MOVF 20,W 00C1 048B 00658 IORWF 0B,F 0000 00659 .................... write_eeprom(1,count); 00C2 3001 00660 MOVLW 01 00C3 1683 00661 BSF 03.5 00C4 009B 00662 MOVWF 1B 00C5 1283 00663 BCF 03.5 00C6 0830 00664 MOVF 30,W 00C7 1683 00665 BSF 03.5 00C8 009A 00666 MOVWF 1A 00C9 151C 00667 BSF 1C.2 00CA 1283 00668 BCF 03.5 00CB 080B 00669 MOVF 0B,W 00CC 00A0 00670 MOVWF 20 00CD 138B 00671 BCF 0B.7 00CE 1683 00672 BSF 03.5 00CF 3055 00673 MOVLW 55 00D0 009D 00674 MOVWF 1D 00D1 30AA 00675 MOVLW AA 00D2 009D 00676 MOVWF 1D 00D3 149C 00677 BSF 1C.1 00D4 189C 00678 BTFSC 1C.1 00D5 28D4 00679 GOTO 0D4 00D6 111C 00680 BCF 1C.2 00D7 1283 00681 BCF 03.5 00D8 0820 00682 MOVF 20,W 00D9 048B 00683 IORWF 0B,F 0000 00684 .................... 0000 00685 .................... output_high(PIN_a4); 00DA 1683 00686 BSF 03.5 00DB 1205 00687 BCF 05.4 00DC 1283 00688 BCF 03.5 00DD 1605 00689 BSF 05.4 0000 00690 .................... delay_us(250); 00DE 3053 00691 MOVLW 53 00DF 00A0 00692 MOVWF 20 00E0 0BA0 00693 DECFSZ 20,F 00E1 28E0 00694 GOTO 0E0 0000 00695 .................... output_low(PIN_a4); 00E2 1683 00696 BSF 03.5 00E3 1205 00697 BCF 05.4 00E4 1283 00698 BCF 03.5 00E5 1205 00699 BCF 05.4 0000 00700 .................... //printf("\r ON: %03Lu",count); 0000 00701 .................... 0000 00702 .................... } 0000 00703 .................... } 0000 00704 .................... } 00E6 2896 00705 GOTO 096 0000 00706 .................... } 00E7 0063 0707 SLEEP
SYMBOL TABLE LABEL VALUE
INDF 00000000 TMR0 00000001 PCL 00000002 STATUS 00000003 _C 00000003 _DC 00000003 _Z 00000003 NOT_PD 00000003 NOT_TO 00000003 RP0 00000003 RP1 00000003 IRP 00000003 FSR 00000004 GPIO 00000005 GP0 00000005 GPIO0 00000005 GPIO1 00000005 GP1 00000005 GPIO2 00000005 GP2 00000005 GP3 00000005 GPIO3 00000005 GPIO4 00000005 GP4 00000005 GP5 00000005 GPIO5 00000005 PCLATH 0000000A INTCON 0000000B GPIF 0000000B INTF 0000000B T0IF 0000000B GPIE 0000000B INTE 0000000B T0IE 0000000B PEIE 0000000B GIE 0000000B PIR1 0000000C TMR1IF 0000000C CMIF 0000000C ADIF 0000000C EEIF 0000000C TMR1L 0000000E TMR1H 0000000F T1CON 00000010 TMR1ON 00000010 TMR1CS 00000010 NOT_T1SYNC 00000010 T1OSCEN 00000010 T1CKPS0 00000010 T1CKPS1 00000010 TMR1GE 00000010 CMCON 00000019 CM0 00000019 CM1 00000019 CM2 00000019 CIS 00000019 CINV 00000019 COUT 00000019 C1OUT 00000019 ADRESH 0000001E ADON 0000001F ADCON0 0000001F GO_DONE 0000001F NOT_DONE 0000001F GO 0000001F CHS0 0000001F CHS1 0000001F VCFG 0000001F ADFM 0000001F _RETURN_ 00000021 blink 0000002E b 0000002F count 00000030 OPTION_REG 00000081 PS0 00000081 PS1 00000081 PS2 00000081 PSA 00000081 T0SE 00000081 T0CS 00000081 INTEDG 00000081 NOT_GPPU 00000081 TRISIO 00000085 PIE1 0000008C T1IE 0000008C TMR1IE 0000008C CMIE 0000008C ADIE 0000008C EEIE 0000008C PCON 0000008E NOT_BOD 0000008E NOT_POR 0000008E OSCCAL 00000090 CAL0 00000090 CAL1 00000090 CAL2 00000090 CAL3 00000090 CAL4 00000090 CAL5 00000090 WPU 00000095 IOCB0 00000096 IOCB 00000096 IOC 00000096 IOC0 00000096 IOCB1 00000096 IOC1 00000096 IOCB2 00000096 IOC2 00000096 IOC3 00000096 IOCB3 00000096 IOC4 00000096 IOCB4 00000096 IOC5 00000096 IOCB5 00000096 VRCON 00000099 VR0 00000099 VR1 00000099 VR2 00000099 VR3 00000099 VRR 00000099 VREN 00000099 EEDATA 0000009A EEADR 0000009B RD 0000009C EECON1 0000009C WR 0000009C WREN 0000009C WRERR 0000009C EECON2 0000009D ADRESL 0000009E ADRES 0000009E ANS0 0000009F ANSEL 0000009F ANS1 0000009F ANS2 0000009F ANS3 0000009F ADCS0 0000009F ADCS1 0000009F ADCS2 0000009F RTCC_isr 0000003A main 00000051
MEMORY USAGE
|  |  |  |  |
Ами така кажи бе човек, защо гледаш листинга от IC-Prog ? Та това не е листинга на CCS, ами е някакъв листинг, пляснат от IC-Proga !
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 06, 2006 5:25 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
ем то хубу че излиза таова, но пак маи отива на майна си раина "goto 051".... call 3ff
|
| Пон Фев 06, 2006 5:31 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
мдааааа, моя гресхка, ама там се видя наи-ясно, по-то4но, там го забелязах, инак листинга от ццс го ето :
 |  |  |  | Код: CCS PCM C Compiler, Version 3.235, 16465 07-Dec-04 16:21
Filename: D:\Electro\PIC\PROJECTS\Cafe Counter\Cafe counter\cct1.LST
ROM used: 234 words (23%) Largest free fragment is 790 RAM used: 20 (31%) at main() level 21 (33%) worst case Stack: 1 worst case (0 in main + 1 for interrupts)
* 0000: MOVLW 00 0001: MOVWF 0A 0002: GOTO 03A 0003: NOP 0004: BTFSC 03.5 0005: GOTO 00A 0006: MOVWF 25 0007: SWAPF 03,W 0008: MOVWF 26 0009: GOTO 00F 000A: BCF 03.5 000B: MOVWF 25 000C: SWAPF 03,W 000D: MOVWF 26 000E: BSF 26.1 000F: MOVF 0A,W 0010: MOVWF 2D 0011: CLRF 0A 0012: BCF 03.7 0013: SWAPF 25,F 0014: MOVF 04,W 0015: MOVWF 27 0016: MOVF 20,W 0017: MOVWF 28 0018: MOVF 21,W 0019: MOVWF 29 001A: MOVF 22,W 001B: MOVWF 2A 001C: MOVF 23,W 001D: MOVWF 2B 001E: MOVF 24,W 001F: MOVWF 2C 0020: BCF 03.5 0021: BTFSS 0B.5 0022: GOTO 025 0023: BTFSC 0B.2 0024: GOTO 040 0025: MOVF 27,W 0026: MOVWF 04 0027: MOVF 28,W 0028: MOVWF 20 0029: MOVF 29,W 002A: MOVWF 21 002B: MOVF 2A,W 002C: MOVWF 22 002D: MOVF 2B,W 002E: MOVWF 23 002F: MOVF 2C,W 0030: MOVWF 24 0031: MOVF 2D,W 0032: MOVWF 0A 0033: SWAPF 26,W 0034: MOVWF 03 0035: BCF 03.5 0036: SWAPF 25,W 0037: BTFSC 26.1 0038: BSF 03.5 0039: RETFIE 003A: CALL 3FF 003B: BSF 03.5 003C: MOVWF 10 003D: MOVLW 00 003E: MOVWF 0A 003F: GOTO 057 .................... #include "D:\Electro\PIC\PROJECTS\Cafe Counter\Cafe counter\cct1.h" .................... #include <12f675.h> .................... //////// Standard Header file for the PIC12F675 device //////////////// .................... #device PIC12F675 .................... #list .................... .................... #device adc=8 .................... .................... #FUSES NOWDT //No Watch Dog Timer .................... #FUSES INTRC_IO //Internal RC Osc, no CLKOUT .................... #FUSES NOCPD //No EE protection .................... #FUSES NOPROTECT //Code not protected from reading .................... #FUSES NOMCLR //Master Clear pin used for I/O .................... #FUSES PUT //Power Up Timer .................... #FUSES BROWNOUT //Reset when brownout detected .................... .................... #use delay(clock=4000000) .................... //#use rs232(baud=9600,parity=N,xmit=PIN_A5,rcv=PIN_A3,bits=9) .................... long int count; .................... byte b; .................... //byte miga; .................... //#define led (PIN_a2) .................... byte blink; .................... .................... .................... #int_RTCC .................... RTCC_isr() .................... { .................... if( input(PIN_a1)==0 ) 0040: BSF 03.5 0041: BSF 05.1 0042: MOVLW 00 0043: BCF 03.5 0044: BTFSC 05.1 0045: MOVLW 01 0046: XORLW 00 0047: BTFSS 03.2 0048: GOTO 04D .................... { .................... blink=1; 0049: MOVLW 01 004A: MOVWF 31 .................... b=0; 004B: CLRF 30 .................... } .................... else 004C: GOTO 054 .................... { .................... b++; 004D: INCF 30,F .................... if(b==25) 004E: MOVF 30,W 004F: SUBLW 19 0050: BTFSS 03.2 0051: GOTO 054 .................... { .................... blink=0; 0052: CLRF 31 .................... b=0; 0053: CLRF 30 .................... } .................... } .................... .................... } .................... .................... .................... 0054: BCF 0B.2 0055: BCF 0A.3 0056: GOTO 025 .................... void main() .................... { 0057: CLRF 04 0058: MOVLW 1F 0059: ANDWF 03,F 005A: BCF 1F.6 005B: BSF 03.5 005C: BCF 1F.0 005D: BCF 1F.1 005E: BCF 1F.2 005F: BCF 1F.3 0060: MOVLW 07 0061: BCF 03.5 0062: MOVWF 19 .................... .................... setup_adc_ports(NO_ANALOGS|VSS_VDD); 0063: BCF 1F.6 0064: BSF 03.5 0065: BCF 1F.0 0066: BCF 1F.1 0067: BCF 1F.2 0068: BCF 1F.3 .................... setup_adc(ADC_OFF); 0069: BCF 03.5 006A: BCF 1F.0 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 006B: BSF 03.5 006C: MOVF 01,W 006D: ANDLW C7 006E: IORLW 08 006F: MOVWF 01 .................... setup_timer_1(T1_DISABLED); 0070: BCF 03.5 0071: CLRF 10 .................... setup_comparator(NC_NC); 0072: MOVLW 07 0073: MOVWF 19 0074: BSF 03.5 0075: MOVF 05,W 0076: MOVLW 03 0077: BCF 03.5 0078: MOVWF 20 0079: DECFSZ 20,F 007A: GOTO 079 007B: MOVF 19,W 007C: BCF 0C.3 .................... setup_vref(FALSE); 007D: BSF 03.5 007E: CLRF 19 .................... enable_interrupts(INT_RTCC); 007F: BCF 03.5 0080: BSF 0B.5 .................... enable_interrupts(GLOBAL); 0081: MOVLW C0 0082: IORWF 0B,F .................... set_tris_A(0b00000011); 0083: MOVLW 03 0084: BSF 03.5 0085: MOVWF 05 .................... count=make16(read_eeprom(0),read_eeprom(1)); 0086: CLRF 1B 0087: BCF 1C.7 0088: BSF 1C.0 0089: MOVF 1A,W 008A: BCF 03.5 008B: MOVWF 32 008C: MOVLW 01 008D: BSF 03.5 008E: MOVWF 1B 008F: BCF 1C.7 0090: BSF 1C.0 0091: MOVF 1A,W 0092: BCF 03.5 0093: MOVWF 33 0094: MOVF 32,W 0095: MOVWF 2F 0096: MOVF 33,W 0097: MOVWF 2E .................... .................... while (true) .................... { .................... if ( input(PIN_a0)/*&(!blink)*/ ) 0098: BSF 03.5 0099: BSF 05.0 009A: BCF 03.5 009B: BTFSS 05.0 009C: GOTO 0E8 .................... { .................... delay_us(20); 009D: MOVLW 06 009E: MOVWF 20 009F: DECFSZ 20,F 00A0: GOTO 09F 00A1: NOP .................... if ( input(PIN_a0) ) 00A2: BSF 03.5 00A3: BSF 05.0 00A4: BCF 03.5 00A5: BTFSS 05.0 00A6: GOTO 0E8 .................... { .................... count++; 00A7: INCF 2E,F 00A8: BTFSC 03.2 00A9: INCF 2F,F .................... .................... write_eeprom(0,count>>8);; 00AA: MOVF 2F,W 00AB: MOVWF 32 00AC: CLRF 33 00AD: BSF 03.5 00AE: CLRF 1B 00AF: BCF 03.5 00B0: MOVF 2F,W 00B1: BSF 03.5 00B2: MOVWF 1A 00B3: BSF 1C.2 00B4: BCF 03.5 00B5: MOVF 0B,W 00B6: MOVWF 20 00B7: BCF 0B.7 00B8: BSF 03.5 00B9: MOVLW 55 00BA: MOVWF 1D 00BB: MOVLW AA 00BC: MOVWF 1D 00BD: BSF 1C.1 00BE: BTFSC 1C.1 00BF: GOTO 0BE 00C0: BCF 1C.2 00C1: BCF 03.5 00C2: MOVF 20,W 00C3: IORWF 0B,F .................... write_eeprom(1,count); 00C4: MOVLW 01 00C5: BSF 03.5 00C6: MOVWF 1B 00C7: BCF 03.5 00C8: MOVF 2E,W 00C9: BSF 03.5 00CA: MOVWF 1A 00CB: BSF 1C.2 00CC: BCF 03.5 00CD: MOVF 0B,W 00CE: MOVWF 20 00CF: BCF 0B.7 00D0: BSF 03.5 00D1: MOVLW 55 00D2: MOVWF 1D 00D3: MOVLW AA 00D4: MOVWF 1D 00D5: BSF 1C.1 00D6: BTFSC 1C.1 00D7: GOTO 0D6 00D8: BCF 1C.2 00D9: BCF 03.5 00DA: MOVF 20,W 00DB: IORWF 0B,F .................... .................... output_high(PIN_a4); 00DC: BSF 03.5 00DD: BCF 05.4 00DE: BCF 03.5 00DF: BSF 05.4 .................... delay_us(250); 00E0: MOVLW 53 00E1: MOVWF 20 00E2: DECFSZ 20,F 00E3: GOTO 0E2 .................... output_low(PIN_a4); 00E4: BSF 03.5 00E5: BCF 05.4 00E6: BCF 03.5 00E7: BCF 05.4 .................... //printf("\r ON: %03Lu",count); .................... .................... } .................... } .................... } 00E8: GOTO 098 .................... } .................... 00E9: SLEEP
Configuration Fuses: Word 1: 31C4 NOWDT NOCPD NOPROTECT NOMCLR PUT INTRC_IO BROWNOUT |  |  |  |  |
и каде е това 3FF дето го търси?
|
| Пон Фев 06, 2006 5:34 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
На адрес 0x03FF се намира инструкцията retlw , като аргумента на инструкцията е зададен при производството на чипа. Този аргумент се използва за калибрация на вътрешния RC осцилатор, а ти го използваш чрез INTRC_IO. Веднага след call 0x03FF имаш movwf OSCCAL, което зарежда калибриращата константа в регистъра за калибриране на осцилатор. Така, че това се и напълно валидно извиквана на подпрограма.
При програмиране на чипа, добре написания софтуер за програмиране на чиповете, пита дали да запази константата на адрес 0x03FF или да я затрие. Хубаво е като си купиш такъв PIC, да я запишеш на лист хартия тази константа, защото може след време да решиш да използваш INTRC_IO и ако не я помниш няма да ти е калибриран осцилатора. А с калибриран RC осцилатор се пуска спокойно софтуерен UART, пробвал съм го в интервал от -10 градуса до +60 градуса и си бичи хайван без нито един грешен пакет.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 06, 2006 6:43 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
ахааааа, това значи ли че програмата спира, защото няма нищо на този адрес. Цялата работа е в това, че аз ползвам Pic Simulator IDE, а там на адр. 3фф сигурно е празно, и затова да ми спира след 5-тата инструкция? ако го вритна в процесора, сигурно ще ба4ка, или???
|
| Пон Фев 06, 2006 6:48 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Ами вмъкни да речем някъде в сорса на C следното
където XX ти е калибровачната константа. Тогава няма да ти спира в симулатора програмата. А тя спира, защото няма кой да каже на подпрограмата да се върне.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 06, 2006 6:59 pm |
|
 |
|
Пауров
Ранг: Минаващ
Регистриран на: Вто Фев 07, 2006 11:05 am Мнения: 4
|
Абе Вълков ти ли си бе ???
|
| Вто Фев 07, 2006 11:07 am |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
Мдааааа, дайе и тръгна... да са еб...., как не се сетих!?!?!
Зада не отварям нова тема (и все пак маи ще отворя) искам да питам, дали някои работи с EAGLE, и ако има такива, да ме светне някои как мога да променя големината (обиколката !?!?) на падовете, демек на това което остаа след пробиване на дупката за резистор да кажем, площадката за запояване...???
|
| Вто Фев 07, 2006 12:55 pm |
|
 |
|
Пауров
Ранг: Минаващ
Регистриран на: Вто Фев 07, 2006 11:05 am Мнения: 4
|
Абе Светльо, казва се "площадка на проходния отвор" и ги мани тия аматйорски програми орли ли са, кви са ми си качи Оркад или Протел. Има книжки и на БГ за тях. Даже имам в електронен вариант за Протела...
|
| Вто Фев 07, 2006 2:50 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
абе не знам колко е аматйорска програмата, ама тоя протел нещо не ме вле4е, то аз не 4е правя кои-знае какво, ама преди 7-8 години си бях качил протел и то само до момента когато видях EAGLE. Последено време се замислям пак да пробвам с протела или както се казва сега алтиум ама да видим...сега го дърпам, 1гъба да го е... в пакета.
|
| Вто Фев 07, 2006 3:35 pm |
|
 |
|
MGBY
Ранг: Популярен
Регистриран на: Сря Дек 22, 2004 2:56 pm Мнения: 347 Местоположение: Хасково
|
Ти пък сега аматьорски недей така
|
| Вто Фев 07, 2006 3:35 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
дада, кажи му го 
|
| Вто Фев 07, 2006 3:36 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|