CSS C'de iki girdi arasındaki zaman farkını ölçme (PIC16F887A)

Katılım
22 Şub 2017
Mesajlar
1
Puanları
1
Yaş
44
Arkadaşlar selamlar.Elektrik Elektronik Mühendisliği son sınıf öğrencisiyim.Bir kaç haftadır denemediğim yöntem bakmadığım topic kalmadı ama halen sorumun cevabını bulamadım. Üstellik bitirme projesi için bunun yetişmesi gerekiyor.Kıymetli yardımlarınız beni ziyadesiyle mutlu edecektir.Şimdiden teşekkür ederim.İyi çalışmalar dilerim.

Projede amacım PIC'in E0 ve E1 bacaklarına sırayla gelen sinyaller arasındaki zaman farkını E0'a gelen sinyalle başlattığım timere0'ın taşma sayısını E1'e gelen sinyalle öğrenmek ve bunu gerekli formüle koyarak cosfi(güç faktörü) değerini elde etmek.Ama ne yaparsam yapayım zaman farkını elde edemiyorum.

Öncelikle buradan projeni proteustaki görüntüsünü atayım(hangi bacakları kullandığımı belirtmek için)





CSS C'de hazırlamış olduğum kodlar ise aşağıda.

Kod:
#include <main.h>
#include <math.h>
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#define A PIN_E0
#define B PIN_E1

 int8 tasma=0;
float zaman=0,aci=0,gf=0;
#include <lcd.c>

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit);      //51,2 us overflow


   lcd_init();

   while(TRUE)
   {
      if(input(A))
      {set_timer0(0);
      }
      if(input(B))
      {
      tasma=get_timer0();
      zaman=tasma*52,2*(10^-6);
      aci=zaman*50*360;
      gf=cos(aci);
      printf(lcd_putc,"Guc Fak.=%f",gf);
      tasma=0;
      delay_ms(50);

      }//TODO: User Code
   }

}
 
Daha önce böyle bir tez incelemiştim. Arkadaşın biri sinüs sinyalini kare dalgaya çevirmiş ve yükselen kenar tetiklemesi yapmıştı. birinci tetiklemede timer devreye giriyor, ikinci tetiklemede timer değerini alıp işleme taabi tutuyordu. Tam olarak inceleme fırsatım olmadı ancak ilham vermesi açısından birkaç kaynak önerebilirim.

http://www.mmfdergi.gazi.edu.tr/article/viewFile/1061000235/1061000205
http://www.emo.org.tr/ekler/f7cb23521d74aec_ek.pdf
http://www.emo.org.tr/ekler/bc3635407664634_ek.pdf
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…