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.
Screenshot_1.png

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();
}
 

Forum istatistikleri

Konular
127,954
Mesajlar
913,893
Kullanıcılar
449,604
Son üye
baba pero

Yeni konular

Geri
Üst