Asembly Sorusu

Başlatan robikod, 31 Mart 2017, 21:36:28

robikod

RA0'daki butona 2 kez basıldığında portb deki ledleri 2şer 2 şer sağa kaydırırken, RA1 deki 3 butona 3 kez basıldığında port b deki ledleri 3 er 3 er sola kaydıran programı nasıl yazabilirim ? her buton sürekli taranıyor.

Yardımcı olursanız sevinirim

RaMu

Akış düyagramı çıkarmalısın,
yani programı öncelikle sözel olarak yazmalısın,
gerisi kolay,
senin aklında nasıl yazmak var?


Direk akış diyagramını yazamıyorsan,
problemin basit versiyonlarını tüetip onları çözmen gerekir.


Misal RA0 daki butona basılınca
PORTB deki tüm ledleri yakan,
RA1 deki butona basılınca
PORTB deki tüm ledleri söndüren program,
gibi...
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

robikod

Alıntı yapılan: RaMu - 31 Mart 2017, 21:50:15
Akış düyagramı çıkarmalısın,
yani programı öncelikle sözel olarak yazmalısın,
gerisi kolay,
senin aklında nasıl yazmak var?


Direk akış diyagramını yazamıyorsan,
problemin basit versiyonlarını tüetip onları çözmen gerekir.


Misal RA0 daki butona basılınca
PORTB deki tüm ledleri yakan,
RA1 deki butona basılınca
PORTB deki tüm ledleri söndüren program,
gibi...

Butona kaç kez basıldığını nasıl tespit edebilirim ? Butonu 1 kez okuyorum ama 2 veya 3 kez olduğunda nasıl yapabilirim ?

efsanepoldem

   Bir regiister tanımlayıp, butona herbastığında içeriğini +1 artırmalısın. Daha sonra register içeriğini kontrol edip ona göre işlem yaptırabilirsi. Örneğin 2 ise ledi yak , 3 ise ledi söndür gibi...

robikod

01 Nisan 2017, 02:53:17 #4 Son düzenlenme: 01 Nisan 2017, 02:54:21 robikod
sayaçA değerine 0x02 verip, şu şekilde kullanmaya çalıştım

TEST_RA0
  BTFSC PORTA,0
  GOTO TEST_RA0
  DECFZS SAYACA
  GOTO TEST_RA0

sonra diğer sayaçla 2 kez sağ kaymasını kontrol ettim ama çok mantıklı gelmedi bu yardımcı olabilir misiniz nasıl kontrol etmem gerekiyor butonların kaç kez basıldığını

 

umitco

Yanlış:
1:Bit lowmu
2:Sayacı artır
3:başa dön

Doğru
1:Bit lowmu
2:Sayacı artır
3:Bit highmı
4:başa dön (sayacı artırmadan)


RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html