CCS C ile LCD programlama hakkında

ctsN

Üye
Katılım
22 Nis 2020
Mesajlar
13
Puanları
1
Yaş
27
Merhabalar. Ccs c de butona basma süresi ile LCD sayıcının artış hızını arttırmam gerekiyor. Hem 5sn hem de 10 sn için. 5sn için olanını yaptım ama 10 sn için olanını yapamadım. Yardım eder misiniz? İyi günler. Devreyi ve yazdığım kodu aşağıya ekledim.

Kod:
#include <16f877a.h>
#fuses xt, nowdt
#use delay(clock = 4 MHz)

#define sure 1000
#define sure2 200
#define sure3 50

#define use_portb_lcd true
#include <LCD.C>

unsigned int16 sayi = 0;
int k = 0;

yaz()
{
   printf(lcd_putc,"\f0000-9999 sayici");
   printf(lcd_putc,"\nSayi: %Lu",sayi);
}

void main()
{
   LCD_INIT();
  
   yaz();
  
   while(1)
   {
      k = 0;
      while(input(pin_a0) == 0)
      {
         sayi++;
         delay_ms(sure);
         k++;
         while(k>5 && input(pin_a0) == 0)
         {
            yaz();
            sayi++;
            delay_ms(sure2);
            if(sayi == 10000)
            sayi = 0;
         }
         if(sayi == 10000)
            sayi = 0;
         yaz();   
      }

      while(input(pin_a1) == 0)
      {
         sayi--;
         delay_ms(sure);
         k++;
         while(k>5 && input(pin_a1) == 0)
         {
            yaz();
            sayi--;
            delay_ms(sure2);
            if(sayi == 0xFFFF)
            sayi = 9999;
         }         
         if(sayi == 0xFFFF)
            sayi = 9999;
         yaz();   
      }
   }
}
 
Bu yazılımla istediğin olabilir.

k = 0;
while(input(pin_a0) == 0)
{
if(k<=5)
{
sayi++;
k++;
delay_ms(sure);
}
else if(k>5 && k<=50)
{
sayi++;
k++;
delay_ms(sure2);
}
else
{
sayi++;
k++;
delay_ms(sure3);
}

if(sayi == 10000)
sayi = 0;

yaz();
}
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…