ccs c de pid gerilim kontrolü ve program atma sorunu

Başlatan elbinaz, 20 Temmuz 2012, 11:57:33

elbinaz

Selamlar
16f877 ye altaş deney setinden veya  brenner dan program atıyorum.Atılmış gözüküyor ama osiloskopla çıkışa bakıyorum çıkış yok.Ayrıca program isiste çalışıyor.Sorun nerede olabilir?

Eren Eraslan

benimde brenner vardı , programı atıyor gösteriyordu ama pic kit i taktığımda boş olduğunu gördüm brenner bozuk olabilir ama deney setinden de atamıyorsan da pic i bir değiştir derim
insanın içine işleyen şarkılar ;  https://soundcloud.com/reeraslan

elbinaz

Acaba 16f877 de  pid olmaz mı ?Çünkü çıkış hiç bir durumda vermiyor.

LukeSkywalker

pid dediğiniz eğer PID algoritması ise 16f84'te bile olur.

elbinaz

#4
atıyorum çıkış vermiyor pid ile gerilim kontrolü yapmaya  çalışıyorum.




mesaj birleştirme:: 24 Temmuz 2012, 23:18:11

Alıntı yapılan: maytere - 24 Temmuz 2012, 23:13:59
pid dediğiniz eğer PID algoritması ise 16f84'te bile olur.
algoritma ? program değil mi? çalışmıyor .pwm yok çıkışta .program isiste çalışıyor pwm veriyor.

frederic

İsis dosyasını ve programınızı eklemeden buradan yorum yapmak çok güç.

elbinaz

#6
Alıntı yapılan: frederic - 24 Temmuz 2012, 23:52:36
İsis dosyasını ve programınızı eklemeden buradan yorum yapmak çok güç.
isise gelince onu yüklemeye çalışacam çünkü sıkıntılı iş oluyor

#INT_RTCC                  //  timer 0 kesmesi
void RTCC_IRS()        // kesmenin ismi timero_kesme gibi
{
set_timer0(6);
++count;
if(count==10)
  {
    count=0;
    setpoint=770;  //115 ti 115*0.0048828125=0.56V OLUYOR   5v=1023 3v=613 1.13v=231 olur.
    set_adc_channel(0);     //
    feedback=read_adc();   //
    error=setpoint-feedback;
    integral+=error;            // Accumulated sum of error
    derivative=error-pre_error; // Derivative of error
         Kp = 2.0;   //8.0 idi
         Ki = 0.020;//
         Kd = 0.00008; // Assign value for Kp, Ki, Kd
           
         P=Kp*error;
         I=Ki*integral*dt;
         D=Kd*derivative/dt;
           
         control=(int16)(P+I+D);
         set_pwm1_duty(control);
         pre_error = error;         // Update error
    }
  }
//}


elbinaz

#7
stdlib.h DOSYASı ne işe yarar ?acaba ayrıca halen daha isiste prog çalışıyor picte çalışmıyor vdd vss arası 100nf olmaması etkiler mi?

Huzame

merhabalar aradan baya bi zaman geçmiş ama   ;D belki de sorunu çözmüşsünüzdür  "while(True){ set_pwm1_duty(control) } yazıp denemeye çalışın olacak mı? kolay gelsin.