and and kullanımı

Başlatan Umitb, 25 Eylül 2009, 20:23:16

Umitb

Merhaba arkadaşlar ccs c konusunda çok yeniyim, and and komutunu bir türlü çalıştıramadım konu hakkında yardımcı olabilirseniz sevinirim.

if ((binler==2)&&(yuzler==3))

bu şekilde yazıyorum ve alt satırda binler ve yüzler hanesini 0 yapamıyorum.Daha doğrusu alt satırı görmeden 24 den devam ediyor.

707yunus

Tam anlamadım ne demek istediğini ama diyelim ki sayı 2346 olsun.Sen binler  hanesini ve ve yüzler hanesini düzgün olarak ayrıştırdıysan yani 2346 daki 2 yi 'binler' değişkenine 3 ü de 'yuzler'  değişkenine atadıysan program

if ((binler==2)&&(yuzler==3))
{
// işlenecek komutlar
}


yukarıdaki iki parantez arasını mutlaka işler.

crazy2015

#include <16F877A.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

#include "flex_lcd.c"

int8 onlar,birler;
int16 k=0;

void main()                              
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init();

while(TRUE)
{
k++;                                         //k değeri artırılıyor

lcd_getc(1,2);                              //k değeri lcd ye yazılıyor 
printf(lcd_putc,"%02Lu",k);

output_b(k);                                //k değeri aynı zamanda b portuna gönderiliyor

onlar=k/10;                                 //k değeri onlar basamağı hesaplanıyor
birler=k%10;                                 //k değeri birler basamağı hesaplanıyor

if (onlar==2 && birler==3)                   //onlar ve birler basamağı istenen değere eşitse komut uygulanıyor 
{
lcd_getc(1,1);
printf(lcd_putc,"%u%u",onlar,birler);        //basamaklar lcd ye yazılıyor
output_high(PIN_C0);                         //c0 pini high yapılıyor
}

else                                           //onlar ve birler basamağı istenen değere eşit değilse komut uygulanıyor 
{
lcd_getc(1,1);
lcd_putc("00");                                 //lcd ye 00 yazılıyor
output_low(PIN_C0);                             // c0 pini low yapılıyor   
}



if(k==30)                                     //k değeri 30 a kadar gelince k değişkeni sıfırlanıyor
{
k=0;
}

delay_ms(500);                                  // bekleme uygulanıyor

}

}



Bu kod yardımcı olabilir

Umitb

Cevaplar için teşekkürler örneğe göre daha öncede denedim fakat olmadı, istediğim şey saat devresinde 23.59'dan sonra 00.00 yazdırmak.Bende ise 24-25 diye devam ediyor, kısaca 23.59 dan sonra yuzler ve binler hanesi sıfır kalacak.

aliveli

Yazdığın kodun tamamını buraya gönder bakalım.

rojhatbilge

Alıntı yapılan: "Umitb"

if ((binler==2)&&(yuzler==3))


Kodun bu kısmında bir problem yok. Çalışması gerekiyor. Kodun diğer kısımlarında hata ara.