Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

pic 16f84 ile servo kontrolü

Başlatan mcan, 24 Mayıs 2005, 15:29:09

mcan

ccs de pic16f84 ü kullanarak nasıl servo kontrol ederiz, bu konuyu bilen arkadaşlar anlatabilirmi,aslında bunu bi fonksiyon haline getirebiliriz  
eğer bilen çıkarsa kodu yazsın vede bunu fonksiyon haline getirmeye çalışalım mesela softservo deriz .h uzantılı dosya haline getiririz programı yazarken include ile ekleriz

mcan

bu servo kontrolünü yapacak gibiyim ama delay_us(1000) yazdığımda program hiç bir işe yaramıyor hemde derlerken program belleğinin 100 de 5 kullanılmış görünüyor ama delay_us 900 yazdığımda program işe yarıyor hemde bellegin 100 de 8 i kullanılmış görünüyor delay_us1000 i sildiğimde ise program belleği gene yuzde 5 kullanılıyor,,yani hiç yazmassam yuzde 5,     1000 yazarsam gene yuzde beş ,,,,900 yazarsam yuzde8 oluyor demekki 999 dan sonrası geçerli değil ama help dosyasında sabit olursa 65000 gibi bir rakama kadar olur diyor değişkenler ise 1-den 255 e kadar ne biçim iş anlamadım neden delay _us da 1000 kullanamıyorum sizden ricam sizde bir denermisiniz acaba sorun benim programlamı ilgili yoksa help dosyasımı yanlış yazılmış

Veli B.

Ccs kullanmıyorum ama tahminimce delay_us (1000) yerine delay_ms (1) yazarsan olur gibi geliyor.

Helpinde ise delay parametresi sabit olursa 0-65535 desteği veriyor, var olursa 0-255 diyor.
Alıntı yapılan: "Custom computer Services, inc."
DELAY_MS()

Syntax: delay_ms (time)

Parameters: time - a variable 0-255 or a constant 0-65535

Returns: undefined

Function:
This function will create code to perform a delay of the specified length.  Time is specified in milliseconds.  This function works by executing a precise number of instructions to cause the requested delay.  It does not use any timers.  If interrupts are enabled the time spent in an interrupt routine is not counted toward the time.
The delay time may be longer than requested if an interrupt is serviced during the delay.  The time spent in the ISR does not count toward the delay time.

Availability: All devices

Requires #use delay



Senin ataman sabit mi değişken mi?
999 ile çalıştığına göre sabit olmalı yada sen farkında değilsin ama 255ten taşma yapıp dönüyor olabilir.C bilen arkadaşlar bu konuda gereken cevabı yazar zaten ama ben yine de söyliyeyim.

SpeedyX

Alıntı yapılan: "katana"C bilen arkadaşlar bu konuda gereken cevabı yazar zaten ama ben yine de söyliyeyim.
Başka bir topicte arkadaşa gerekli cevap ahmetu tarafından yazılmıştı.

mcan

yok hocam başka bi topicdeki cevabı aldım ama buradaki durum farklı burda sabitden bahsediyorum yani sabit olarak 1000 verince algılamıyor ,1ms yapıncada fazla geliyor aslında eşüitolamsı lazım 1ms ile 1000us nin ama bi yerde yanlış varsada 1000 yazınca algılamamasıyla baglantısını kuramıyorum

mcan

sorunu çözdüm gibi programı derle dediğimde bir önceki yazdığım şeyi derliyor nedense açıp kapayınca düzeliyor ne dense neyse sağolun

SpeedyX

C*r*a*c*k yaptıktan sonra oluyor, adamlarada diyemezsinki programını kırdık düzgün çalışmıyor diye, yenisi çıkana kadar öyle kullanacaksınız.

mcan

#include <16f84a.h>
#fuses xt,NOWDT,NOPROTECT
#use delay(clock=4000000)
#byte   PORTB  =  6
main(void)
{
SET_TRIS_B(0);
PORTB = 0;
for(;;)
{



   output_high(PIN_B0);
   delay_us(900);
   delay_us(200);
   output_low(PIN_B0);
   delay_ms( 18 );
   delay_us(900);
   }

}


sizce bunun eş değeri yani aynı işi yapan kod nedir?çok gıcık bi durumla karşı karşıya olduğumu düşünüyorum çünki bunun yerine şunu yazdığımda aynı durum gerçekleşmiyor

 
output_high(PIN_B0);
   delay_us(1100);

   output_low(PIN_B0);
   delay_us(18900);

@encryptedcode, forumu hiç okumuyorsunuz galiba  :!:
kod verirken ne yapmamız gerekiyor  :?:

mcan

kusura bakmayın ne yapmam gerektiğini bilmiyorum ama üst konularda sabit konulara baktım bişey bulamadım yada forum ana sayfasında alakalı bir yer bulamadım yada göremedim,neyse ne yapmam gerekiyor acab bende öyle yapayım

mcan

biraz önce baktım benim diğer yazı şekil değişikliğine uğramış sanırım acab bu kutu içine almayımı kastettiniz

Veli B.

Evet.Kod verirken bu şekilde veriyoruz ki bozulmadan görünebilsin.Cevap yazarken ikinci sıranın başında # ikonu.

mcan

tamam kodları birdaha böyle yazarım.......

bu verdiğim kodlarla ilgili sorunum hala devam ediyor ,derleme sorunuda varmış ama onu hallettim bu sorun ayrı bir sorun bunu deneyebilirmisiniz
iki kod aynı sonucu vermiyor neden acaba ?