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
129,852
Mesajlar
930,759
Kullanıcılar
452,707
Son üye
128bpm

Yeni konular

Geri
Üst