SAYAÇA GÖRE MANTIK KURMA

Başlatan bahdiyarusta, 09 Eylül 2015, 22:38:23

bahdiyarusta

Merhaba,

bir problemim var çözemedim, olay şöyle

Bir sayacım var sayac her  1 artmasında bir pinden pals ver demek istiyorum,  sayac=1 git pals ver   sayac=2 git pasl ver  gibi
şimdi 2.bir şeçeneği seçince de sayac her 3 artmasında  bir pals ver demek istiyorum, sayac=3 git pasl ver sayac=6 git pals ver
sayac= 9 git pasl ver  ,,, gibi bunu 1-2-3-4-5 kademeli yapmak istiyorum.
bunu yapabilmek için her kademe için 255 tane ıf sayac=1 then palsver .......ıf sayac=255 then palsver  şeklinde düşünüyorum ama
  çok uzun olacak gibi duruyor bunun bir mantığı var mıdır..

<<<***bahdiyarusta****>>>
                  - 66 -

Hattuşa




dim SaYac as byte
dim palsver as bit
palsver =0
Main:

sayac =sayac +1
if sayac =255 then sayac =0
palsver =1

if palsver =1 then
palsver =0
portc.0 =1
delayms 10
portc.0 =0
endif
goto main


usta sayac değeri her değiştiğinde bir değişkeni set edersin, ana programda bu değişkeni kontrol edersin. eğer set ettiğin değerde ise palsini verirsin ve değişkenin set değerini sıfırlarsın. bu sayede sayac değişkenin değişmediği sürece palsde vermemiş olursun

bahdiyarusta

anladım,,
tamam bi uğraşalım bakalım
çok teşekkur ederım,,
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Sayaç değeri her arttığında bir puls vereceksin bunda başka türlü bir uygulama yapılması mümkün değil.
Ancak kaç sayaç artımında bir puls daha vereceksin onu bir formüle bağlayabilirsin.
Programın başında ARTIS diye bir byte değişkeni tanımlarsın.  Sonra sayac değeri artışını yakaladığın konumda,
IF SAYAC>0 and (SAYAC//ARTIS=0) THEN PULS2 şeklinde bunu genelleyebilirsin. Formülde görülen // ifadesi mod alma işlemidir.
Diyelimki her 3 artışta bir ikinci palsi vereceksin. Sayac=1 den sonrasına bakalım,

1//3=1 puls verme
2//3=2 puls verme
3//3=0 puls ver.
şeklinde olay devam eder.

Ete



bahdiyarusta

çok teşekkür ederim,
bu oldu...
<<<***bahdiyarusta****>>>
                  - 66 -

bahdiyarusta

hocam şimdi sizin yöntem ile yapmak istedim ama olayı tam istediğim gibi bağlayamadım,
benim amacım,
seçenek 1; sayaç her 1 artışında 1 pals ver
seçenek 2; sayaç her 2 artışında 1 pals ver
seçenek 3; sayaç her 3 artışında 1 pals ver
bunu yapmak istiyorum.
<<<***bahdiyarusta****>>>
                  - 66 -

ete

#6
Sayac=sayac+1
Pulsout Pin,1  ' her artışta 10us lik bir puls verir.
IF SAYAC//2=0 then PULSOUT Pin,1  'her 2 artışta veya 2 ve 2 nin katlarında  bir puls verir
IF SAYAC//3=0 then PULSOUT Pin,1 'her 3 artışta veya 3 veya 3 ün katlarında bir puls verir
Goto ....

Ete

bahdiyarusta

aynen budur hocam çok teşekkürler... ;)
<<<***bahdiyarusta****>>>
                  - 66 -

Powered by EzPortal