Ynt: programdaki hatam nerede?

Başlatan apsis, 11 Mayıs 2014, 17:00:02

apsis

Merhaba aşağıda yazdığım programda pwm duty değerini butonla arttırıp azaltıyorum ancak simülasyonda arttırma yada azaltmaya bastığım zaman duty değeri 1-2 sn. sonra ilk ayarladığım değere dönüyor(osilaskopta gözlem yapıyorum.Şemada pinlere pull-down dirençleri bağlı)
Kod:
#include<xc.h>
#include"delay.h"
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF        // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF        // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)


#define _XTAL_FREQ 20MHz

void main(void)
{
int duty1=0,duty=250;

ADCON1=0X07;
TRISA=0X03;
TRISB=0X00;
TRISC=0X00;
TRISD=0X00;
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
PR2=124;
CCPR1L=duty>>2;
CCP1X=1;
CCP1Y=0;
T2CKPS1=0;
T2CKPS0=1;




CCP1M0=1;
CCP1M1=1;
CCP1M2=1;
CCP1M3=1;
TMR2ON=1;




for(;;)
{

    if(RA0)
    {
        while(RA0);
         
        duty-=125;

        if(duty<=125)
        duty=125;

        CCP1X=duty&2;
        CCP1Y=duty&1;
        CCPR1L=duty>>2;
       
        DelayMs(100);

    }
    if(RA1)
    {
        while(RA1);
         
            duty+=125;

        if(duty>=500)
            duty=500;
            
         CCP1X=duty&2;
         CCP1Y=duty&1;
         CCPR1L=duty>>2;
         DelayMs(100);



  }



 PR2=124;


}
}


mesaj birleştirme:: 11 Mayıs 2014, 18:26:51

Derleyicinin 60 günlük pro deneme süresi geçti bunun derlemeye bir etkisi olurmu?
"Makineye Beyin" MEKATRONİK

Gökhan BEKEN

Alıntı yapılan: apsis - 11 Mayıs 2014, 17:00:02
Derleyicinin 60 günlük pro deneme süresi geçti bunun derlemeye bir etkisi olurmu?
Normalde sadece optimizasyona etkisi oluyor bildiğim kadarıyla. Bu yüzden hex dosyası büyüyor. Ancak bir sorun olacağını sanmıyorum. Yinede ilaçlayarak deneyebilirsiniz. Burdan bilgi alabilirsiniz: https://www.picproje.org/index.php/topic,50929.msg384132.html#msg384132
Özel mesaj okumuyorum, lütfen göndermeyin.