Tuş hatası lütfen yardım ?

Başlatan kulinx, 25 Temmuz 2012, 23:12:32

kulinx

merhaba
dongu yaptım ama ra.1 karasımsek
ra.2 ye ise 1 led yaktım ve söndürdüm
fakat ra.1 bastıgımda karasımsek 1 kere çalısıyor ,
ra.2 ise 1kere yanıyor ve program donup kalıyor
biraz yardımcı olurmusunuz dongulerde ne yapmalıyım
birden fazla tuş ve işlemlerde devamlılık olması için nelerı atlıyorum

Teşekkürler.

@ DEVICE pic16F628A                      'islemci 16F628A
@ DEVICE pic16F628A, WDT_on       'Watch Dog timer kapalı
@ DEVICE pic16F628A, PWRT_ON      'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF  'Kod Protek kapalı
@ DEVICE pic16F628A, XT_OSC       '4 MHz Kristal osilatör kullandık

TRISB=0   'port b ıkış olarak ayarlandı
TRISA=1
PORTA=0
PORTB=0

LED VAR BYTE

ANA:
LED=0
IF PORTA.0 = 1 THEN KARASIMSEK
IF PORTA.1 = 1 THEN DONGU
GOTO ANA

KARASIMSEK:
LED=0
FOR LED=0 TO 7
HIGH LED
PAUSE 200
LOW LED
NEXT LED
PORTB=0
FOR LED=7 TO 0 STEP -1
HIGH LED
PAUSE 200
LOW LED
PAUSE 200
next led
RETURN

DONGU:           
LED=0
HIGH PORTB=%00000001
PAUSE 200
LOW PORTB=%00000001
PAUSE 200
RETURN


END

OG

#1
@ DEVICE pic16F628A                      'islemci 16F628A
@ DEVICE pic16F628A, WDT_on       'Watch Dog timer kapalı
@ DEVICE pic16F628A, PWRT_ON      'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF  'Kod Protek kapalı
@ DEVICE pic16F628A, XT_OSC       '4 MHz Kristal osilatör kullandık

TRISB=0   'port b ıkış olarak ayarlandı
TRISA=%00000011
cmcon=7

PORTA=0
PORTB=0


x var Byte

ANA:
    If PORTA.0 = 1 Then KARASIMSEK
    If PORTA.1 = 1 Then DONGU
GoTo ANA

KARASIMSEK:
    
    For x = 0 To 7
        PORTB.x = 1
        PAUSE 200
        
        If x <> 7 Then
            PORTB.x = 0
        EndIf
    Next 
    

    
    For x = 7 To 0 Step -1
        PORTB.x = 1
        PAUSE 200

        PORTB.x = 0
    Next 
    
GoTo ANA

DONGU:           

    PORTB.0=1
    PAUSE 200
    PORTB.0=0
    PAUSE 200
GoTo ANA
 

End
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ete

Kusur bir;  programin basina acılıs gecikmesi ver . Pause 250
Kusur iki; programin basina cmcon=7  komut satırını ilave et.
Kusur uc; kara şimşek alt programina goto ile gidip Return ile donmeye calisıyorsun.
Then karasimsek yerine then gosub karasimsek yaz.
Aynı kusur Dongu isimli alt program icinde gecerli
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

kulinx

hocam teşekkürler
og ayrıca tesekkurler
özellikle bole bırsey yaptım ve sordum çunku ugrastıkca ve çözüm buldukca
kafamda şekilleniyor
Tekrardan teşekkürler