Haberler:

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

Ana Menü

CCS, döngü problemi.

Başlatan kumsaatci, 26 Nisan 2009, 20:42:40

kumsaatci

Arkadaslar acilen yetiştirmem gereken bi işvar.
Şu an tarih 26.nisan.2009 bu işi 8.mayıs.2009 a kadar vermeliyim.

Olay bir butonla 7-seg ile 0-F arası sonsuz sayıcı yapmalıyım.

program şu

for ( ; ; )
  {
  if (input(but))
  {
  delay_ms(15);
 for( ; ; )
 {
 for(i=15;i>=0;i--)
  {
  output_D(digit);
  delay_ms(100);
  }
  }
  }
  }

Ama for döngüsünde işin içine 0 girince sonsuz dögü bile bir kez çalışıyor.
bu durum da

const int digit[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

olan diziyi

const int digit[17]={0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

şeklide yazıp
for döngüsünü de

for(i=16;i>=1;i--)

şeklide yazmam gerekiyor.

BUNUN BAŞKA BİR CALIŞMA YOLUNU BİLEN VARSA YARDIMINA İHTİYACIM VAR

ŞİMDİDEN TEŞEKKÜR EDERİM

fractal

ccs de genelde döngüler while ile yapılır.main  kısmında  1 tane while(1) sonsuz döngü secilir.ama istersen bunu

while(1)
{

while(input(pin_x1))
 {
....................
...................
  }


while(input(pin_x2))
 {
....................
...................
  }


.....................

....................

}
Restantum cogniscutur Quantum deligutur

mucit07

if(input(test))
{
while(input(test));
for(;;)
{
 output_b(7_seg);
 i++; if(i>15) i=0;
 delay_ms(500);


}

 }

emre07

aşağıdaki kodlar uzun yolu fakat çalışıyor kolay gelsin

#include <16F628a.h>
#fuses xt,NOWDT,NOPROTECT
#use delay(clock=4000000)
#byte port_a=5        
#byte port_b=6

main(VOID)
{
while(1)
{
if (input(pin_a0)==1)
{
while(1)
{

output_b(0x3F);
delay_ms(400);
output_b(0x06);
delay_ms(400);
output_b(0x5B);
delay_ms(400);
output_b(0x4F);
delay_ms(400);
output_b(0x66);
delay_ms(400);
output_b(0x6D);
delay_ms(400);
output_b(0x7D);
delay_ms(400);
output_b(0x07);
delay_ms(400);
output_b(0x7F);
delay_ms(400);
output_b(0x6F);
delay_ms(400);
output_b(0x77);
delay_ms(400);
output_b(0x7C);
delay_ms(400);
output_b(0x39);
delay_ms(400);
output_b(0x5E);
delay_ms(400);
output_b(0x79);
delay_ms(400);
output_b(0x71);
delay_ms(400);
}
}
}
}

arslan74

Ben böyle bir örnek ugulamanın eğitim dökümanlarını yayınlamıştım.

Onları inceledinizmi?

linki:

https://www.picproje.org/index.php/topic,19169


Selamlar

tnen

for ( ; ; )
{
if (input(but))
{
delay_ms(15);
for( ; ; )
{
for(i=15;i>=0;i--)
{
Bu satıra i>15 ise i=15 yaptıracak kodu yaz
output_D(digit);
delay_ms(100);
}
}
}
}

kumsaatci

Alıntı yapılan: "emre07"aşağıdaki kodlar uzun yolu fakat çalışıyor kolay gelsin

#include <16F628a.h>
#fuses xt,NOWDT,NOPROTECT
#use delay(clock=4000000)
#byte port_a=5        
#byte port_b=6

main(VOID)
{
while(1)
{
if (input(pin_a0)==1)
{
while(1)
{

output_b(0x3F);
delay_ms(400);
output_b(0x06);
delay_ms(400);
output_b(0x5B);
delay_ms(400);
output_b(0x4F);
delay_ms(400);
output_b(0x66);
delay_ms(400);
output_b(0x6D);
delay_ms(400);
output_b(0x7D);
delay_ms(400);
output_b(0x07);
delay_ms(400);
output_b(0x7F);
delay_ms(400);
output_b(0x6F);
delay_ms(400);
output_b(0x77);
delay_ms(400);
output_b(0x7C);
delay_ms(400);
output_b(0x39);
delay_ms(400);
output_b(0x5E);
delay_ms(400);
output_b(0x79);
delay_ms(400);
output_b(0x71);
delay_ms(400);
}
}
}
}

ellerine sağlık bayağı uzunmş

kumsaatci

Alıntı yapılan: "tnen"for ( ; ; )
{
if (input(but))
{
delay_ms(15);
for( ; ; )
{
for(i=15;i>=0;i--)
{
Bu satıra i>15 ise i=15 yaptıracak kodu yaz
output_D(digit);
delay_ms(100);
}
}
}
}
15 le sorun yokki olay 0 da kopuyor

kumsaatci

Alıntı yapılan: "arslan74"Ben böyle bir örnek ugulamanın eğitim dökümanlarını yayınlamıştım.

Onları inceledinizmi?

linki:

https://www.picproje.org/index.php/topic,19169


Selamlar
tesekkür ederim sanırım işime yarar