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ü ?
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
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
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.
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..
Bunu RTC ile yapmanın bir yolu yok mudur?
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.
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.
"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.
Selam,
http://murtuzayevsahil.files.wordpress.com/2013/03/c_kitap.pdf (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.
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.
DS1307'de ayarlarsanız(07h adresindeki) SQW/OUT çıkışı var. Registerini ayarlarsanız çıkışında 1 saniyelik senkron çıkışı verebiliyor.