c kodları simulasyon sorunu

ugur20

Üye
Katılım
28 Nis 2009
Mesajlar
4
Puanları
1
Yaş
36
arkadaşlar proteus da çizdiğim devreye c ile yazıp hi tech ile derlediğim kodu ekleyince devre çalışmıyor.sebebini bir türlü bulamadım.yardım edermisiniz?

kodlar

Kod:
#include "18f458.h"
#include "stdio.h"
#include "string.h"
#include "htc.h"
#include "stdlib.h"
#include "delay.h"

void gecikme(void)
{
  int e;
   {
      for(e=17;e>1;e--);
DelayUs(25000);
   }

 return;
}

main(void)
{
  
   float yuksek,dusuk,derece; 
   int c,a=20,b=30;
   TRISA=0x01;
   TRISB=0x00;
    TRISC=0x00;
   ADCON1=0x8E;
   ADCON0=0x41;
   for (;; )
   {
     
      ADCON0=0x45;
      while((ADCON0)!=0);
      yuksek=ADRESH;
      dusuk=ADRESL;
      derece=256.0*yuksek + dusuk;
      derece=derece*48;
      c=(int)derece;
      gecikme();
      
      if (c < a)
      {
         RC6=1;
         RC7=0;
         gecikme();
      }

      else if (c > b)
      {
         RC7=1;
         RC6=0;
         gecikme();
      }

      if (a < c&&c < b)
      {
         RC6=0;
         RC7=0;
         gecikme();
      }
   }
}
 
"gecikme" fonksiyonunda for dongusunde 17 den geriye sayıp hiç bir işlem yaptırmayıp sonrada bir kere delay yapıorsun . bu anlamsız göründü bana . ayrıca gecikme fonksiyonundaki "return" gereksiz.
main fonksiyonu "void main(void)" olarak yazmalısın

include da stdio,stdlib ve string gereksiz.
sorun bunlardan mı kaynaklanıyor bilemicem ama bunların dışında ADCON'lar ve analog veri okuma kodları doğruysa hata bulamadım ben :D

benim kullandıgım analog veri okuma kodu aşağıdaki gibi:
veri 0-5 aralığında.
Kod:
int ADC(){
             float veri;
	ADCON1=0b10000100;
	ADCON0=0b00001001;
	DelayUs(25);
	ADGO=1;
	while(!ADGO);
	veri=ADRESL+(ADRESH*256);
	veri=(veri*5)/1023;
             return (int) h;
}
 
her for döngüsünde delay komutu işletiliyor 16*250 den 4ms lik gecikme oluyor. kütüphanelerin gereksiz olduğunu bende farkettim. htc ve delay yetiyor.dönüşümlerimde hata varmış onları düzeltince çalıştırdım. ilgilenip cevap vermenden teşekkür ederim.
 
her for döngüsünde delay komutu işletiliyor 16*250 den 4ms lik gecikme oluyor. kütüphanelerin gereksiz olduğunu bende farkettim. htc ve delay yetiyor.dönüşümlerimde hata varmış onları düzeltince çalıştırdım. ilgilenip cevap vermenden teşekkür ederim.


for döngüsünden sonraki noktalı virgülü kaldırmazsan her for döngüsünde işletmez delay'i.
 

Forum istatistikleri

Konular
128,936
Mesajlar
921,848
Kullanıcılar
451,114
Son üye
Elektrik 43

Yeni konular

Geri
Üst