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.
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.
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?
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.
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.
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.
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);
}
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.
ş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);
}
}
https://drive.google.com/file/d/1JuG83Xa9rT5O5PZg2hXH2444gfoKOEZz/view?usp=sharing
HC595 ile sürüldü...
Elinize, emeğinize sağlık.
Fakat ben nerede hata yapıyorum???
// 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.
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)
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