Butonlar ile değişkene değer atama belirleme

Başlatan benanlamam, 26 Aralık 2012, 22:43:28

benanlamam

arkadaşlar aşağıdaki programda  "yemle" kısmındaki "yemlemesuresi" değerini ayarla butonuna bastıktan sonra arttır ve azalt butonlarıyla bir değer girip tekrar ayarla butonuna basarak bu değerin atanmasını nasıl sağlayabilirim.programlama bilgim yok ancak bu kadar yazabildim.

if(input(ayarla)) //ayarla butonuna basınca yem kademesi ayarına git
   goto yemayar;//yem ayar aşamasına git

program akışının içine bunu ekeldim.herhangi biz zamanda ayarlaya basınca yemayar kısmına gidicek.bu kısmı oluşturup ayarı burda yaptırmayı düşünüyorum.yem ayar kısmını ilk goto programdan önceye yerleştirisek ilk açılışta değeri atayıp öyle çalışmaya başlattırmayı düşünüyorum.yardımlarınızı bekliyorum






#include <main.h>
#include <DS1302.C>
#define use_portd_lcd TRUE
#include <lcd.c>
#define ENABLE_PIN D0
#define RS_PIN D1
#define RW_PIN D2
#define Data4 D4
#define Data5 D5
#define Data6 D6
#define Data7 D7

#define yemtest pin_a0 //yem test butonu
#define ayarla pin_a1 // ayarla butonu
#define arttir pin_a2 // + butonu
#define azalt pin_a3 // - butonu

#define yemvar pin_a4 // yem haznesinin şamandıra switchine bağlanıcak


int saat, dakika, saniye;
int yemsuresi;



void main()
{
set_tris_a(0x01);// bütün a portlarını giriş olarak ayarla

rtc_init();//gerçek zamanlı saati hazırla
rtc_set_datetime(01,01,13,2,0,1);// 01/01/2013 salı 00:01 saatin ilk ayarını yap
lcd_init();//lcd ekranı hazırla

yemayar:

  goto program; //program aşamasına git




yemle:
printf(lcd_putc,"\nYem Veriliyor...");
output_high(pin_c7); //yemleme motorunu döndürmeye başla
delay_ms(yemsuresi);
output_low(pin_c7); //yemleme motorunu durdur
goto program;//program aşamasına git



uyari:
printf(lcd_putc,"\nHazneye yem ekle");//ekranda hazneye yem ekle uyarısını yazdır
   output_high(pin_c6);//alarmı çal
   delay_ms(5000);//5 sn alarm devam eder
   output_low(pin_c6);//alarm susar

while(1)
{
   program:
       
   if(input(yemvar)) //depoda yem yoksa alarmı çaldır
   goto uyari; //uyarı aşamasına git
   
   if(input(ayarla)) //ayarla butonuna basınca yem kademesi ayarına git
   goto yemayar;//yem ayar aşamasına git
   
 
   
   if(input(yemtest)) //yemtest butonuna basılırsa hangi zamanda olursa olsun yemle komutuna git
   goto yemle; //yemle aşamsına git
   
 
  rtc_get_time(saat,dakika,saniye); // DS1302 den zaman bilgileri alınıyor   
  printf(lcd_putc,"\fSaat: %02d:%02d:%02d",saat,dakika,saniye); //ekrana saat,dakika,saniye bilgisi yazılıyor
 
  if(saat==0) //saat basamağı 0 ile 7 arasındaysa yem saatini 08:00 olarak yazdır
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==1)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==2)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==3)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==4)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==5)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==6)
  printf(lcd_putc,"\nYem saati: 08:00");
  if(saat==7)
  printf(lcd_putc,"\nYem saati: 08:00");
 
  if(saat==8)//saat basamağı 8 le 15 arasındaysa yem saatini 16:00 olarak yazdır
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==9)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==10)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==11)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==12)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==13)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==14)
  printf(lcd_putc,"\nYem saati: 16:00");
  if(saat==15)
  printf(lcd_putc,"\nYem saati: 16:00");
 
  if(saat==16)//saat basamağı 16 ile 23 arasındaysa yem saatini 00:00 olarak yazdır
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==17)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==18)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==19)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==20)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==21)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==22)
  printf(lcd_putc,"\nYem saati: 00:00");
  if(saat==23)
  printf(lcd_putc,"\nYem saati: 00:00");
 
 
 
  if(saat==0&&dakika==1&&saniye==10)//test alarmı.program yazma bittikten sonra silincek
   goto yemle;
   
  if(saat==0&&dakika==0&&saniye==0)  // son yemleme vakti
  goto yemle;   
   
  if(saat==8&&dakika==0&&saniye==0)  //ilk yemleme vakti
  goto yemle;   
     
  if(saat==16&&dakika==0&&saniye==0)  //ikinci yemleme vakti
  goto yemle;   
       
  delay_ms(333); //gecikme veriliyor
 
 


}
}

yldzelektronik

Basic temelli olduğunuzu düşünüyorum.C de fonksiyon kavramı daha yaygındır.Fonksiyonları bi araştırmanızı öneririm.Birazdan bi örnek kod paylaşırım ancak şimdi gitmem gerek.

Fonksiyonlar!
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

benanlamam

pascal tabanım var ama üzerinden 15 seneye yakın zaman geçti.
çeşitli örneklerden bakarak buraya kadar yazabildim ama butonlarla ilgili bir örnek bulamadım açıkçası