Ccs C'de Dakika ve ya Saat cinsinden Gecikme Nasıl Yapılıyor

Başlatan Ekolan, 30 Ekim 2014, 17:11:00

Ekolan

Merhaba
CCS c de  yeni başlayan biri olarak  bilmediğim ve  nasıl  yapılıyor  diye merak  ettiğim konu;
dakika  ve  saat  cinsinden  bekleme  yapmak mümkün mü ?


baran123

delay ms fonksiyonu milisaniye cinsinden bekleme yapar sen 1 dakika beklemek için
1000 milisaniye = 1 saniye
6 saniye = 6000 mili saniye şeklinde arttırarak yaparsın ama delay fonksiyonuna cok buyuk rakamlar yazmak ıyı degıl bunu for ıcınde yaptırman daha ıyı olur dıye dusunuyorum

Ekolan

3-5 sanıyelık gecıkmelerı    "delay_ms(3500); "   cinsinden  yazıyorum.
Fakat Belli  saniyeden  sonrası olmuyor.  örneğin  30dk için "ms " kullanılmıyor 

Kabil ATICI

mikrokontroller ile çalışıyorsun,(işlemcinin sınırları ölçüsünde) istediğin kadar sayaç kullanabilirsin.
en basitinden
delay_ms(1000);  //bu kısım tamam

bu durumda 1 dakikalık gecikme için ne yapmak gerekir 1saniyelikleri saydırmak gerekir.
en basiti for döngüsüdür. (kullandığınız derleyiciye göre farklılık gösterebilir.

for (int i=0;i<60;i++)
{delay_ms(1000);
}

bu sana 1 dakikalık gecikme verir. peki 1 saatlik gecikme nasıl olabilir;
for (int j=0;j<60;j++)
{
for (int i=0;i<60;i++)
{delay_ms(1000);
}
}


buda sana bir saatlik gecikme verir. kaç saatlik istiyorsan sonra saatler içinde aynı şeyi yaparsın.
Ama bu yöntem işlemci açısından sağlıklı değildir. Çünkü bu gecikme esnasında işlemci hiçbir şeye tepki vermez. Bunun için timer kesmesini kullanmak gerekir. Artık bu konuya da sen bakarsın.
ambar7

SBTECH

Ben olsam hiç delay kullanmazdım , timer kesmesini counter ile kullanmak daha doğru olacaktır. Bunun için 1 saniyelik süre oluşturacak kadar timer kesmesi geldiğinde bir fonksiyona atlayıp bu fonksiyonda ise 60 kere geldiğinde 1 dk 3600 kere geldiğinde ise 1 saatte bir yapılacak işlemleri sıralayabilirsiniz..
Elektronik ilimdir..

polleme


F493

Merhaba Ekolan,

   Size tavsiyem C programlama konusunda biraz kendinizi geliştirmeniz aslında sorunun CCS C ile ilgisi yok. Bu size çok katkı sağlayacaktır.
Konu c proğramlama dilinde döngü ifadeleri.


Esen kalın.

Ekolan

Alıntı yapılan: F493 - 30 Ekim 2014, 19:59:33
Merhaba Ekolan,

   Size tavsiyem C programlama konusunda biraz kendinizi geliştirmeniz aslında sorunun CCS C ile ilgisi yok. Bu size çok katkı sağlayacaktır.
Konu c proğramlama dilinde döngü ifadeleri.


Esen kalın.

Merhaba hocam;
Pic programlama  konusunda  çok çok acemiyim tabi,  sağdan soldan  örnekleri  inceleyerek bişeyler ögrenmeye  çalısıyorum.
İf else  örneklerini yapabılıyorum, ama bi döngü oluşturdugumuzda döngü dışına nasıl çıkmamız gerek ?
anlayacağınız  temelden  mantığını ögrenerek bişeyler  yapmak lazım. 



tavsiye  edebileceğiniz  kaynak  varmı ?
Kitap haricinde (  e-kitap, pdf  vs  olabılır) video,  internet  sayfası vs.

teşekkur ederım. 

Gökhan BEKEN

"C dilini" bilmiyorsunuz ve PIC bilmiyorsunuz, ama ikisini birlikte kullanmaya çalışıyorsunuz. En azından birini bilmeyip diğerini deneye deneye öğrenmeye çalışsanız hadi neyse. C dilini öğrenmek için bir kitap alın bilgisayarda çalışın. 1-2 yıl sonra C dilini öğrenirsiniz ama düzenli çalışmanız lazım. Sonra da PIC için bir kitap alırsınız aynı şekilde çalışırsınız.
Özel mesaj okumuyorum, lütfen göndermeyin.

F493

Selam,

  http://murtuzayevsahil.files.wordpress.com/2013/03/c_kitap.pdf   şu sitede necati ergin'in cok iyi bir c kitabı var. Buradan takıldıgınız konulara bakın. Birde ccs c kitabı alın okuyun uygulayın.


Esen kalın.

ahmet_zxc

Alıntı yapılan: polleme - 30 Ekim 2014, 19:38:38
Bunu RTC ile yapmanın bir yolu yok mudur?


mcp79410 rtc entegresiyle ben yapıyorum.

mcp79410 ile tanıştığımdan beri ds1302 ye elveda dedim.

mcp79410 da alarm kurabiliyorsunuz, alarm çıkışını işlemciye kesme olarak girerseniz, isterseniz 1 yıllık gecikmeyi bile yapabilirsiniz.

Kabil ATICI

DS1307'de ayarlarsanız(07h adresindeki)  SQW/OUT çıkışı var. Registerini ayarlarsanız çıkışında 1 saniyelik senkron çıkışı verebiliyor.
ambar7