Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: NamTech - 21 Ocak 2018, 21:33:35

Başlık: Sonsuz döngü hakkında
Gönderen: NamTech - 21 Ocak 2018, 21:33:35
Arkadaşlar merhaba,

CCS C de çok yeniyim ve takıldığım bazı sorunlar var, dolayısı ile yardımınız gerekiyor. Vereceğiniz önerilerde mantığı açıklarsanız daha yararlı olur.

void main()
{
   unsigned  char birinci=0b00110011;   
   unsigned  char ikinci= 0b10110011;   
   unsigned  char ucuncu =0b01010101;
   
   while(TRUE)
   {
   for(;;)
   {
           hc595_out(birinci);
           delay_ms (250);
           hc595_out(ikinci);
           delay_ms (250);
           hc595_out(ucuncu); 
           delay_ms (250);
           
           
           output_high(HC595_ENB);
           output_low(HC595_ENB);
   }
   }
}   



kodunu sürekli tekrarlasın istiyorum, bunu nasıl sağlarım.

Herkese başarılar, teşekkür ederim.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: fide - 21 Ocak 2018, 23:16:23
Merhaba.
Sonsuz döngüyü
while(1)
{






}
Parantezleri arasına yazacağın kodları sürekli çalıştırmak için kullanırsın.
Sen içiçe 2 defa kullanmışsın. (zaratı var mı, gördüğüm kadarıyla yok ama mantıklı değil.


İşlemcinin sürekli iş yapabilmesi için sonsuz döngüyü kullanmalısın.
Yalnız yukarıdaki kodlarında bi eksik var.
H595out isimli komut yok. Ya include ile harici kütüphane yükleyeceksin ya da kendin yazacaksın.



Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: mehmet - 22 Ocak 2018, 15:53:43
Clock başlamadan latch low yapılır.
Sonra işlemler yapılır. Yine latch high
yapılıp iş bitirilir.
HC595 tek mi? Üç adet mi?
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: Pyrodigy - 22 Ocak 2018, 18:43:03
Alıntı yapılan: NamTech - 21 Ocak 2018, 21:33:35
Arkadaşlar merhaba,

CCS C de çok yeniyim ve takıldığım bazı sorunlar var, dolayısı ile yardımınız gerekiyor. Vereceğiniz önerilerde mantığı açıklarsanız daha yararlı olur.

void main()
{
   unsigned  char birinci=0b00110011;   
   unsigned  char ikinci= 0b10110011;   
   unsigned  char ucuncu =0b01010101;
   
   while(TRUE)
   {
   for(;
   {
           hc595_out(birinci);
           delay_ms (250);
           hc595_out(ikinci);
           delay_ms (250);
           hc595_out(ucuncu); 
           delay_ms (250);
           
           
           output_high(HC595_ENB);
           output_low(HC595_ENB);
   }
   }
}   



kodunu sürekli tekrarlasın istiyorum, bunu nasıl sağlarım.

Herkese başarılar, teşekkür ederim.
@fide arkadaşımızında açıkladığı üzere.
Burada;

while(TRUE)


ile

for(;;)

aynı anlamdadır. Yani programın sonsuz döngüye girer.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: NamTech - 22 Ocak 2018, 21:15:49
Arkadaşlar,

while ( TRUE ) yada while ( 1 ) olarak denedim olmadı,
sonrasında araya (olursa diye ) for (;;) koydum yine olmadı.

proğramı çalıştırdığımda displayde 3 farklı aydınlanma görünüyor ve tekrarlama yapmıyor.

CCS de yeni olduğum için hatayı nerede yaptığımı bir türlü bulamadım.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: mehmet - 22 Ocak 2018, 21:33:01
Olayın sonsuz döngü ile alakası yok.
Benim soruma cevap veriniz.

Ek:
Hatta CCS C ile de alakası yok. HC595
sürme olayı sadece.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: mg1980 - 22 Ocak 2018, 21:38:34
while(TRUE) veya while(1) yeterli. "for" ile ilgili olanlar fazlalık. Siz 595'e ait kodları biraz inceleyin.Onlarda bir problem var gibi.

Şöyle olabilir mi?

while(TRUE)
   {
   
   
           hc595_out(birinci);
           output_high(HC595_ENB);
           delay_ms (250);
           output_low(HC595_ENB);
           hc595_out(ikinci);
           output_high(HC595_ENB);
           delay_ms (250);
           output_low(HC595_ENB);
           hc595_out(ucuncu);
           output_high(HC595_ENB);
           delay_ms (250);
           output_low(HC595_ENB);
           
   }
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: NamTech - 22 Ocak 2018, 21:42:04
HC595 şu an proğramlamayı anlamam adına tek, aslına bakarsanız örnek devremde 6 adet HC595 kurulu vaziyette fakat data aktarımını bağlamadım. Yani tek kullanıyorum.
Şu anda 7 segmentte istediğim rakamları görüyorum, gönderdiğim 3 rakamı sırası ile gösteriyor fakat aynı rakamları birden fazla kere göstermiyor.

Yardımlarınız için teşekkür ederim.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: NamTech - 22 Ocak 2018, 21:50:21
şu an denemek ve öğrenmeye başlamak adına uğraştığım program aşağıdaki gibi


#define HC595_DATA pin_b2
#define HC595_CLK  pin_b0
#define HC595_ENB  pin_b1

void hc595_out(unsigned char veri)
{
   unsigned  char i;
   for(i=0x80;i>0;i>>=1)
   {
      if(i&veri)output_high(HC595_DATA);
      else  output_low(HC595_DATA); 
      output_high(HC595_CLK);
      output_low(HC595_CLK);
   }

}


void main()
{
   unsigned  char birinci=0b00000110;   
   unsigned  char ikinci= 0b01011011;   
   unsigned  char ucuncu =0b01001111;
   
   while(TRUE)
   {
           hc595_out(birinci);
           delay_ms (500);
           hc595_out(ikinci);
           delay_ms (500);
           hc595_out(ucuncu); 
           delay_ms (500);
           
           
           output_high(HC595_ENB);
           output_low(HC595_ENB);
   }
}   
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: mehmet - 22 Ocak 2018, 22:10:37
https://drive.google.com/file/d/1JuG83Xa9rT5O5PZg2hXH2444gfoKOEZz/view?usp=sharing

HC595 ile sürüldü...
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: NamTech - 22 Ocak 2018, 22:51:32
Elinize, emeğinize sağlık.

Fakat ben nerede hata yapıyorum???
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: NamTech - 22 Ocak 2018, 23:11:25
//           output_high(HC595_ENB);
//           output_low(HC595_ENB);

şeklinde değişiklik yaptığımda proğram sürekli baştan okumaya ve yazmaya başladı, yani sonsuz döngüye girdi.
nedenini henüz anlamadım.

yardımcı olmaya çalışan tüm arkadaşlara teşekkür ederim.
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: RaMu - 23 Ocak 2018, 02:13:10
Program sonsuz döngüye giriyor,
bunun son yaptığınla bir alakası yok,
74hc595 sürmende bir problem vardır,
faydası olur şu örneğin:


Dosyalar:
http://www.mediafire.com/file/egr0h41whifdelv/74hc595Ornegim.7z


(https://lh3.googleusercontent.com/6036QWD1qz_fGU4MJwZ3_yvcr0c2XIZw2_16unrt2EUKHjWYWsB3cMp36HH5uDnqaz5dKWk4psbyOJvjO4GxQo2Y6AK6gc6KbIN9dw_miXw3yEnYOmFaSU_xrQGGTW_f76LvIK4tlg=w1300-h567-no)
Başlık: Ynt: Sonsuz döngü hakkında
Gönderen: Pyrodigy - 25 Ocak 2018, 03:05:43
Alıntı yapılan: NamTech - 22 Ocak 2018, 22:51:32
Elinize, emeğinize sağlık.
Fakat ben nerede hata yapıyorum???

https://www.picproje.org/index.php/topic,71363.msg551361.html#msg551361