pbp led animasyon kısa program yazmak

Başlatan harmanx, 11 Nisan 2012, 00:11:37

harmanx

8 ledi 2li led olarak saydırmak istiyorum her adımda 2li yanan ledler 3 kere yanıp sonra yana kayacak bunu zun yoldan yapıyorum kısayolunu mantığını kuramadım yardımlarınızı bekliyorum
Altaki yazılımda kısmen oldu fakat istediğim olmadı sadece birinci adımda ledleri flashör yapabiliyorum komut bilgim eksik devam ettirirseniz memnun olurum..
ikinci deneme yazılımda farklı mantık kurdum oldu fakat aklım ilk yazılımda nasıl olur?

ilk yazılım
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 09.04.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   : LED ANİMASYON                                     *
'*          :                                                   *
'****************************************************************

TRISB=0 'PORT B ÇIKIŞ YAP
PORTB=0'PORTB SIFIRLA
LED VAR BYTE' DEĞİŞKEN TANIMLA

KARA:'BASLA


FOR S=0 TO 3
PAUSE 50
PORTB=3
pAUSE 50
PORTB=0
NEXT

PORTB=%00000011
PAUSE 50
FOR LED=0 TO  2 ' ARTIRARK SAY
portb= portb <<2
PAUSE 50
NEXT LED

FOR LED=2 TO 0 STEP -1
PORTB= PORTB >>2
PAUSE 50
NEXT LED
GOTO KARA
END
'*******************************************************************************

ikinci yazılım
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 09.04.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   : LED ANİMASYON                                     *
'*          :                                                   *
'****************************************************************

TRISB=0 'PORT B ÇIKIŞ YAP
PORTB=0'PORTB SIFIRLA
LED VAR BYTE' DEĞİŞKEN TANIMLA
D1 VAR BYTE
D2 VAR BYTE
D3 VAR BYTE
D4 VAR BYTE
S VAR BYTE
I VAR BYTE
B1 VAR BYTE
BASLA:
FOR I=0 TO 2     
PAUSE 50
PORTB=3
PAUSE 50
PORTB=0 
NEXT I           

FOR I=0 TO 2     
PAUSE 50
PORTB=12
PAUSE 50
PORTB=0 
NEXT I

FOR I=0 TO 2     
PAUSE 50
PORTB=48
PAUSE 50
PORTB=0 
NEXT I

FOR I=0 TO 2     
PAUSE 50
PORTB=192
PAUSE 50
PORTB=0 
NEXT I


GOTO KARA         
END
'*********************************************************************


'FOR S=0 TO 3
'PAUSE 50
'PORTB=3
'pAUSE 50
'PORTB=0
'NEXT

'PORTB=%00000011
'PAUSE 50
'FOR LED=0 TO  2 ' ARTIRARK SAY
'portb= portb <<2
'PAUSE 50
'NEXT LED

'FOR LED=2 TO 0 STEP -1
'PORTB= PORTB >>2
'PAUSE 50
'NEXT LED
'GOTO KARA
'END


ete

Flash işlemini ana kaydırma döngüsü içine alırsan ve bu iş için bir değişken kullanırsan olur istediğin.

Durum isimli bir değişken tanımlayalım, DURUM VAR BYTE
BASLA : deyip işlemi başlatalm
ONCE DURUM değişkenimize en soldaki iki ledi yakacak şekilde değer verelim DURUM=3
SOnra döngümüzü kuralım.
FOR I =0 to 3
  PORTB=DURUM
      FOR W=0 to 2 '3 defa flash yapacak
          PORTB=0
          PAUSE 100
          PORTB=DURUM
          PAUSE 100
      NEXT
  DURUM=DURUM<<2
Next

Hepsi bu kadar.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

harmanx

teşekkür ederim verdiğiniz bilgi için