#include <12f683.h>
#device adc=10
#use delay(clock=40000000)
#fuses NOWDT, INTRC_IO, NOMCLR, PUT
#use fast_io(a)
int16 i=125;
void main(void)
{
set_tris_a(9);
setup_adc(ADC_CLOCK_DIV_16);
setup_adc_ports(ALL_ANALOG);
set_adc_channel(0);
delay_us(10);
setup_ccp1(ccp_pwm);
setup_timer_2(t2_div_by_1,255,1);
set_pwm1_duty(i);
while(1)
{
i=read_adc();
set_pwm1_duty(i);
delay_us(250);
}}
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT //No brownout reset
#FUSES INTRC_IO
#FUSES NOMCLR
#use delay(int=4000000)
int16 i=125;
void main()
{
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_DIV_16);
setup_timer_2(T2_DIV_BY_1,255,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(i);
setup_comparator(NC_NC);
setup_oscillator(OSC_4MHZ);
while(TRUE)
{
[B] setup_adc(ADC_CLOCK_DIV_16);
delay_ms(20);[/B]
i=read_adc();
set_pwm1_duty(i);
}
}
CCS PCM C Compiler, Version 4.138, 56899 27-Kas-12 02:23
Filename: C:\Users\AB\Desktop\Yeni klasör (2)\main.lst
ROM used: 145 words (7%)
Largest free fragment is 1903
RAM used: 6 (5%) at main() level
7 (5%) worst case
Stack: 1 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 018
0003: NOP
.................... #include <main.h>
.................... #include <12F683.h>
.................... //////// Standard Header file for the PIC12F683 device ////////////////
.................... #device PIC12F683
.................... #list
....................
.................... #device adc=10
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES INTRC_IO //Internal RC Osc, no CLKOUT
.................... #FUSES NOBROWNOUT //No brownout reset
.................... #FUSES INTRC_IO
.................... #FUSES NOMCLR
....................
.................... #use delay(int=4000000)
0004: MOVLW 26
0005: MOVWF 04
0006: MOVF 00,W
0007: BTFSC 03.2
0008: GOTO 017
0009: MOVLW 01
000A: MOVWF 21
000B: CLRF 20
000C: DECFSZ 20,F
000D: GOTO 00C
000E: DECFSZ 21,F
000F: GOTO 00B
0010: MOVLW 4A
0011: MOVWF 20
0012: DECFSZ 20,F
0013: GOTO 012
0014: GOTO 015
0015: DECFSZ 00,F
0016: GOTO 009
0017: GOTO 072 (RETURN)
....................
....................
....................
....................
.................... int16 i=125;
....................
.................... void main()
.................... {
0018: CLRF 04
0019: MOVLW 1F
001A: ANDWF 03,F
001B: MOVLW 61
001C: BSF 03.5
001D: MOVWF 0F
001E: MOVF 0F,W
001F: BCF 03.5
0020: CLRF 25
0021: MOVLW 7D
0022: MOVWF 24
0023: BCF 1F.6
0024: BSF 03.5
0025: BCF 1F.0
0026: BCF 1F.1
0027: BCF 1F.2
0028: BCF 1F.3
0029: MOVLW 07
002A: BCF 03.5
002B: MOVWF 19
.................... setup_adc_ports(sAN0);
002C: BCF 1F.6
002D: BSF 03.5
002E: BSF 1F.0
002F: BCF 1F.1
0030: BCF 1F.2
0031: BCF 1F.3
.................... setup_adc(ADC_CLOCK_DIV_16);
0032: BSF 1F.4
0033: BCF 1F.5
0034: BSF 1F.6
0035: BCF 03.5
0036: BSF 1F.7
0037: BSF 1F.0
.................... setup_timer_2(T2_DIV_BY_1,255,1);
0038: MOVLW 00
0039: MOVWF 21
003A: IORLW 04
003B: MOVWF 12
003C: MOVLW FF
003D: BSF 03.5
003E: MOVWF 12
....................
.................... setup_ccp1(CCP_PWM);
003F: BCF 05.2
0040: BCF 03.5
0041: BCF 05.2
0042: MOVLW 0C
0043: MOVWF 15
.................... set_pwm1_duty(i);
0044: MOVF 25,W
0045: MOVWF 22
0046: MOVF 24,W
0047: MOVWF 21
0048: RRF 22,F
0049: RRF 21,F
004A: RRF 22,F
004B: RRF 21,F
004C: RRF 22,F
004D: MOVF 21,W
004E: MOVWF 13
004F: RRF 22,F
0050: RRF 22,W
0051: ANDLW 30
0052: MOVWF 20
0053: MOVF 15,W
0054: ANDLW CF
0055: IORWF 20,W
0056: MOVWF 15
.................... setup_comparator(NC_NC);
0057: MOVLW 07
0058: MOVWF 19
0059: BSF 03.5
005A: MOVF 05,W
005B: MOVWF 05
005C: MOVLW 02
005D: BCF 03.5
005E: MOVWF 20
005F: DECFSZ 20,F
0060: GOTO 05F
0061: GOTO 062
0062: NOP
0063: MOVF 19,W
0064: BCF 0C.3
.................... setup_oscillator(OSC_4MHZ);
0065: MOVLW 61
0066: BSF 03.5
0067: MOVWF 0F
0068: MOVF 0F,W
....................
.................... while(TRUE)
.................... {
.................... setup_adc(ADC_CLOCK_DIV_16);
0069: BSF 1F.4
006A: BCF 1F.5
006B: BSF 1F.6
006C: BCF 03.5
006D: BSF 1F.7
006E: BSF 1F.0
.................... delay_ms(20);
006F: MOVLW 14
0070: MOVWF 26
0071: GOTO 004
.................... i=read_adc();
0072: BSF 1F.1
0073: BTFSC 1F.1
0074: GOTO 073
0075: BSF 03.5
0076: MOVF 1E,W
0077: BCF 03.5
0078: MOVWF 24
0079: MOVF 1E,W
007A: MOVWF 25
.................... set_pwm1_duty(i);
007B: MOVF 25,W
007C: MOVWF 22
007D: MOVF 24,W
007E: MOVWF 21
007F: RRF 22,F
0080: RRF 21,F
0081: RRF 22,F
0082: RRF 21,F
0083: RRF 22,F
0084: MOVF 21,W
0085: MOVWF 13
0086: RRF 22,F
0087: RRF 22,W
0088: ANDLW 30
0089: MOVWF 20
008A: MOVF 15,W
008B: ANDLW CF
008C: IORWF 20,W
008D: MOVWF 15
.................... }
008E: BSF 03.5
008F: GOTO 069
.................... }
0090: SLEEP
Configuration Fuses:
Word 1: 3CC4 INTRC_IO NOWDT PUT NOMCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN
verdiğiniz kodları denedim yine aynı düzensizlikte onun nedeni while döngüsü her tekrarındaki gecikme olabilirmi ?her tekrardaki zaman kaybını nasıl düzelte bilirimŞöyle dene:
Kod:#device adc=10 #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES NOBROWNOUT //No brownout reset #FUSES INTRC_IO #FUSES NOMCLR #use delay(int=4000000)
Kod:int16 i=125; void main() { setup_adc_ports(sAN0); setup_adc(ADC_CLOCK_DIV_16); setup_timer_2(T2_DIV_BY_1,255,1); setup_ccp1(CCP_PWM); set_pwm1_duty(i); setup_comparator(NC_NC); setup_oscillator(OSC_4MHZ); while(TRUE) { [B] setup_adc(ADC_CLOCK_DIV_16); delay_ms(20);[/B] i=read_adc(); set_pwm1_duty(i); } }
---------------
@GüvTek , ccs c aşağıdakini senin için üretiyor :
Kod:CCS PCM C Compiler, Version 4.138, 56899 27-Kas-12 02:23 Filename: C:\Users\AB\Desktop\Yeni klasör (2)\main.lst ROM used: 145 words (7%) Largest free fragment is 1903 RAM used: 6 (5%) at main() level 7 (5%) worst case Stack: 1 locations * 0000: MOVLW 00 0001: MOVWF 0A 0002: GOTO 018 0003: NOP .................... #include <main.h> .................... #include <12F683.h> .................... //////// Standard Header file for the PIC12F683 device //////////////// .................... #device PIC12F683 .................... #list .................... .................... #device adc=10 .................... .................... #FUSES NOWDT //No Watch Dog Timer .................... #FUSES INTRC_IO //Internal RC Osc, no CLKOUT .................... #FUSES NOBROWNOUT //No brownout reset .................... #FUSES INTRC_IO .................... #FUSES NOMCLR .................... .................... #use delay(int=4000000) 0004: MOVLW 26 0005: MOVWF 04 0006: MOVF 00,W 0007: BTFSC 03.2 0008: GOTO 017 0009: MOVLW 01 000A: MOVWF 21 000B: CLRF 20 000C: DECFSZ 20,F 000D: GOTO 00C 000E: DECFSZ 21,F 000F: GOTO 00B 0010: MOVLW 4A 0011: MOVWF 20 0012: DECFSZ 20,F 0013: GOTO 012 0014: GOTO 015 0015: DECFSZ 00,F 0016: GOTO 009 0017: GOTO 072 (RETURN) .................... .................... .................... .................... .................... int16 i=125; .................... .................... void main() .................... { 0018: CLRF 04 0019: MOVLW 1F 001A: ANDWF 03,F 001B: MOVLW 61 001C: BSF 03.5 001D: MOVWF 0F 001E: MOVF 0F,W 001F: BCF 03.5 0020: CLRF 25 0021: MOVLW 7D 0022: MOVWF 24 0023: BCF 1F.6 0024: BSF 03.5 0025: BCF 1F.0 0026: BCF 1F.1 0027: BCF 1F.2 0028: BCF 1F.3 0029: MOVLW 07 002A: BCF 03.5 002B: MOVWF 19 .................... setup_adc_ports(sAN0); 002C: BCF 1F.6 002D: BSF 03.5 002E: BSF 1F.0 002F: BCF 1F.1 0030: BCF 1F.2 0031: BCF 1F.3 .................... setup_adc(ADC_CLOCK_DIV_16); 0032: BSF 1F.4 0033: BCF 1F.5 0034: BSF 1F.6 0035: BCF 03.5 0036: BSF 1F.7 0037: BSF 1F.0 .................... setup_timer_2(T2_DIV_BY_1,255,1); 0038: MOVLW 00 0039: MOVWF 21 003A: IORLW 04 003B: MOVWF 12 003C: MOVLW FF 003D: BSF 03.5 003E: MOVWF 12 .................... .................... setup_ccp1(CCP_PWM); 003F: BCF 05.2 0040: BCF 03.5 0041: BCF 05.2 0042: MOVLW 0C 0043: MOVWF 15 .................... set_pwm1_duty(i); 0044: MOVF 25,W 0045: MOVWF 22 0046: MOVF 24,W 0047: MOVWF 21 0048: RRF 22,F 0049: RRF 21,F 004A: RRF 22,F 004B: RRF 21,F 004C: RRF 22,F 004D: MOVF 21,W 004E: MOVWF 13 004F: RRF 22,F 0050: RRF 22,W 0051: ANDLW 30 0052: MOVWF 20 0053: MOVF 15,W 0054: ANDLW CF 0055: IORWF 20,W 0056: MOVWF 15 .................... setup_comparator(NC_NC); 0057: MOVLW 07 0058: MOVWF 19 0059: BSF 03.5 005A: MOVF 05,W 005B: MOVWF 05 005C: MOVLW 02 005D: BCF 03.5 005E: MOVWF 20 005F: DECFSZ 20,F 0060: GOTO 05F 0061: GOTO 062 0062: NOP 0063: MOVF 19,W 0064: BCF 0C.3 .................... setup_oscillator(OSC_4MHZ); 0065: MOVLW 61 0066: BSF 03.5 0067: MOVWF 0F 0068: MOVF 0F,W .................... .................... while(TRUE) .................... { .................... setup_adc(ADC_CLOCK_DIV_16); 0069: BSF 1F.4 006A: BCF 1F.5 006B: BSF 1F.6 006C: BCF 03.5 006D: BSF 1F.7 006E: BSF 1F.0 .................... delay_ms(20); 006F: MOVLW 14 0070: MOVWF 26 0071: GOTO 004 .................... i=read_adc(); 0072: BSF 1F.1 0073: BTFSC 1F.1 0074: GOTO 073 0075: BSF 03.5 0076: MOVF 1E,W 0077: BCF 03.5 0078: MOVWF 24 0079: MOVF 1E,W 007A: MOVWF 25 .................... set_pwm1_duty(i); 007B: MOVF 25,W 007C: MOVWF 22 007D: MOVF 24,W 007E: MOVWF 21 007F: RRF 22,F 0080: RRF 21,F 0081: RRF 22,F 0082: RRF 21,F 0083: RRF 22,F 0084: MOVF 21,W 0085: MOVWF 13 0086: RRF 22,F 0087: RRF 22,W 0088: ANDLW 30 0089: MOVWF 20 008A: MOVF 15,W 008B: ANDLW CF 008C: IORWF 20,W 008D: MOVWF 15 .................... } 008E: BSF 03.5 008F: GOTO 069 .................... } 0090: SLEEP Configuration Fuses: Word 1: 3CC4 INTRC_IO NOWDT PUT NOMCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN
...aynı düzensizlikte onun nedeni ...