Komut kısaltmak

Başlatan Elektrik2012, 20 Ekim 2013, 19:11:28

Elektrik2012

Merhaba abilerim,üstadlarım,kardeşlerim öncelikle geçmiş bayramınız kutlu olsun ;) 0-9 kadar sayıları butondan seçerek displayda göstrermek istiyorum programı yazdım amaprogramı kısaltmak istiyorum Özellikle if kısmını Birde butonlardan hangisi olursa olsun bir bas rakam değişsin ve tekrar başka butona basılnaa kadar aynı kalamsını istiyorum ama çözemedim :) Biraz c eksiğim var kusura bakmayın

if(input(sayi1))
output_b(0x06);
bu kodu diğer şekilde yaabilirmiyim denedim olmadı bit yerine output_b yaptım ama hata verdi 
output_bit(PIN_D0,!input(PIN_B0));


Bütün program
#include<16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4M)
#use fast_io(b)
#use fast_io(d)
#use fast_io(a)

#define sayi0 pin_a0
#define sayi1 pin_d0
#define sayi2 pin_d1
#define sayi3 pin_d2
#define sayi4 pin_d3
#define sayi5 pin_d4
#define sayi6 pin_d5
#define sayi7 pin_d6
#define sayi8 pin_d7
#define sayi9 pin_a1

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

set_tris_b(0x00);
set_tris_d(0xFF);
set_tris_a(3);


while(1)
{
output_b(0x00);

if(input(sayi0))
output_b(0x3f);

if(input(sayi1))
output_b(0x06);

if(input(sayi2))
output_b(0x5B);

if(input(sayi3))
output_b(0x4f);

if(input(sayi4)) 
output_b(0x66);

if(input(sayi5))
output_b(0x6d);

if(input(sayi6))
output_b(0x7c);

if(input(sayi7)) 
output_b(0x07);

if(input(sayi8))
output_b(0x7f);

if(input(sayi9))
output_b(0x6f);

}
}

İyi Akşamlar

XX_CİHAN_XX

#1
Selamlar if li kısımları kısaltacak çok bir durum yok. Yazdığınız program yapmaya çalıştığınız işi yapar ancak butondan parmağınızı çekince yeni bir butona basana kadar display de son rakamın kalması için,
output_b(0x00);

Yazan satırı
while(1)

Döngüsünün dışına taşımanız yeterli. Yani aşağıdaki gibi:
output_b(0x00);
while(1)
{


Bir de hayati bir önemi yok ama düz if kullanmak yerine if else yapısını kullanırsanız daha faydalı olur.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Elektrik2012

#2
Hocam allah razi olsun Vallahi öğrenmeme çok yardımcı oldunuz bu komutu :) Biraz eksiklerim var onlarıda tam öğrenirsem tamam  :) Vallahi kaç saat uğraştım olmadı bi satır yukarı çekince oluyomuş :) Tekrar teşekkür ederim Bir sonraki projem Matris butonlarla harf göstricem :) foruma Öğrenim amaçlı ödev projeler diye bölüm açılabilir mi?yani önceden yapılan projeleri isimleri paylaşılmalı örneğin 0-9 sayici geri ileri Gibi Ne biliyim bence öğrenmek isteyen kişilere faydalı olur Mesela ben örnek projeler yapmak istiyorum kendimi geliştirmek için ne yapabiliriim?