Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

kare dalga okutma

Başlatan cseb, 04 Mayıs 2011, 11:51:33

cseb

arkadaşlar 84 hz lik bir kare dalgayı aşağıdaki gibi bir programla pic e okutmaya çalışıyorum. önce sinyalin 0 olmasını bekliyorum. 0 olunca timer1 i başlatıyorum. sonra sinyal 1 olunca timer değerini okuyorum. sonuca göre iki ayrı işlem yaptırmak istiyorum ancak pek dengeli çalışmıyor.

while(1) // Sonsuz döngü
   {
  if(!input(pin_b0)){
  goto lab;
  }
   }
  lab:
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
    while(!input(pin_b0))

    i= get_timer1();
    if(i<=3748){output_high(pin_b3);}

    if(i>3748){ output_high(pin_b4);
    set_timer1(0);
}

GreeN

Sorunlarınızda vs. kodun genelini paylaşmanız sizin mefatinize olur.

Aşağıdaki kodu dene daha sağlıklı sonuç alabilirsin.

#INT_EXT
 
void ext_isr() {
unsigned long int i;
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
ext_int_edge(H_TO_L);

i=get_timer1();
set_timer1(0);

ext_int_edge(L_TO_H);
  // disable_interrupts(INT_EXT);
  // disable_interrupts(GLOBAL);
printf("\f%ld",i);
if(i<=7436){ 
output_high(pin_b3); 
output_low(pin_b4);
}

if(i>7436) { 
output_high(pin_b4); 
output_low(pin_b3);
}
  // enable_interrupts(INT_EXT);
  // enable_interrupts(GLOBAL);
}



void main()
{
long int i;
//short durum=0; 
  
   ext_int_edge(L_TO_H);      
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);   

while(1) // Sonsuz döngü
   {
 
      }}


Terörü Lanetliyoruz.