pbp de 15 tane buton var herhangi biri 0 olursa..

Başlatan antiteror, 21 Eylül 2008, 12:12:14

antiteror

pbp de 15 tane buton var herhangi biri 0 olursa sayı=sayı+1 yaptırabilirim.

   if (kontak=0) or (kontak1=0) or (kontak2=0) or(kontak3=0) or (kontak4=0) or (kontak5=0) or(kontak6=0) or (kontak7=0) or (kontak8=0) or (kontak9=0) or (kontak10=0) or (kontak11=0)or(kontak12=0) or (kontak13=0) or (kontak14=0) then
   SAYI=SAYI+1
   endif

bu şekilde yaptım derleyince hata verdi bunun daha kısa bi yolu varmıdır?

hatmeto

kontakları dizi sayısı yapar ve sırayla kontrol ettirirsin hernangi biri 1 olursa sayı=sayı + 1 yaparsın
Bir admin ataasözü derki: "biliyorsan paylaş mod yapsınlar. bilmiyorsan sus banlamasınlar"

antiteror

anlamadım basit bi örnekle açıklayabilirmisiniz.
teşekkürler

imcek

15 butonu hangi pic'e baglamak istiyorsun.yoksa kontak1,kontak2 vs bunlar degiskenmi.??

dombilik

Alıntı Yapkontakları dizi sayısı yapar ve sırayla kontrol ettirirsin hernangi biri 1 olursa sayı=sayı + 1 yaparsın


yani;

FOR I =0 TO 15
IF KONTAK[I]=0 THEN S=S+1
NEXT I
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

antiteror

şu şekilde açıklayayım
kontak,kontak1...........kontak14
bunlar pic in girişleri pic16f877a
tmr0 kesmesi yaptırdım


KESME:
     SAYI=SAYI+1       
     IF SAYI=61 then       
        SAYI=0              
        SN=SN+1              
           IF SN=60 THEN       
              SN=0             
              DAK=DAK+1      
                 IF DAK=15 THEN
                 clear  
                 DAK=0              
                 ENDIF
           ENDIF
        ENDIF
        INTCON.2=0      
        RESUME
        ENABLE



bu şekilde 15 dk çalışacak sonra bütün değişkenler sıfırlanacak.
ama bi koşul var 15 tane kontaklardan her hangi biri kapalı olduğunda sayacak eğer hepsi açık ise saymayacak.

OG

Yazım sınırını taşıyordur. Alt satıra alt çizgi ile geçebilirsiniz veya sınırı öteleyebilirsiniz.







Komut için ise tek tek kontak ismi vermeden, kontaklar hangi porta/portlara  bağlı ise IF PORTB>0 THEN port kontrolu yaparak sonuc alabilirsiniz.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

antiteror

Warn KESME.ASM:971 [102] code croses boundary @ 800h
bu hatayı veriyor

OG

Hata değil uyarı o. Kod içinde asm kullanmıyorsan önmeseme.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

antiteror

@ DEVICE PIC16F877A,HS_OSC                              
@ DEVICE PIC16F877A, WDT_OFF              'Watch Dog timer kapalı
@ DEVICE PIC16F877A, PWRT_ON             'Power on timer açık
@ DEVICE PIC16F877A, BOD_OFF     'Kod Koruma kapalı
@ DEVICE PIC16F877A, LVP_OFF
@ DEVICE PIC16F877A, CPD_OFF
@ DEVICE PIC16F877A, PROTECT_OFF

bunlar var

krts

case kmutyla yapsana öyle daha kolay olur
:idea:

ywzslm

pic basicpro da  bu komutları yani @ ile başlayan komutları kullanmak hatalı olabiliyor bende yeni fark ettim bunun yerine @işaretinden sonra gelen her kelimeyi _ işareti ile birbirine başğlamak  gerekir aklınızda bulunsun yeni başlayanlar için can sıkıcı olabilmektedir
@ DEVICE_PIC16F877A_HS_OSC
@ DEVICE_PIC16F877A_WDT_OFF 'Watch Dog timer kapalı
@ DEVICE_PIC16F877A_PWRT_ON 'Power on timer açık
@ DEVICE_PIC16F877A_BOD_OFF 'Kod Koruma kapalı
@ DEVICE_PIC16F877A_LVP_OFF
@ DEVICE_PIC16F877A_CPD_OFF
@ DEVICE_PIC16F877A_PROTECT_OFF
olgulardaki olgunluk biziz

antiteror

Alıntı yapılan: "ywzslm"pic basicpro da  bu komutları yani @ ile başlayan komutları kullanmak hatalı olabiliyor bende yeni fark ettim bunun yerine @işaretinden sonra gelen her kelimeyi _ işareti ile birbirine başğlamak  gerekir aklınızda bulunsun yeni başlayanlar için can sıkıcı olabilmektedir
@ DEVICE_PIC16F877A_HS_OSC
@ DEVICE_PIC16F877A_WDT_OFF 'Watch Dog timer kapalı
@ DEVICE_PIC16F877A_PWRT_ON 'Power on timer açık
@ DEVICE_PIC16F877A_BOD_OFF 'Kod Koruma kapalı
@ DEVICE_PIC16F877A_LVP_OFF
@ DEVICE_PIC16F877A_CPD_OFF
@ DEVICE_PIC16F877A_PROTECT_OFF

Bu şekilde yazınca hata veriyor.

ywzslm

bilemiyorum fakat acaba hata 16f628a yazınca mı oluşuyor pbp den birde16f628 secmeyi dene bazen işe yarıyor birde kayıt yerini dosya içine değil masa ustune yapmanı tavsiye ederim
olgulardaki olgunluk biziz