Gönderen Konu: Asembly Sorusu  (Okunma sayısı 684 defa)

Çevrimdışı robikod

  • Kıdemli
  • ****
  • İleti: 160
Asembly Sorusu
« : 01 Nisan 2017, 09:36:28 »
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

Çevrimdışı RaMu

  • Profesyonel Üye
  • *****
  • İleti: 2527
  • 1+1=0
Ynt: Asembly Sorusu
« Yanıtla #1 : 01 Nisan 2017, 09: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...
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Çevrimdışı robikod

  • Kıdemli
  • ****
  • İleti: 160
Ynt: Asembly Sorusu
« Yanıtla #2 : 01 Nisan 2017, 09:54:40 »
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 ?

Çevrimdışı efsanepoldem

  • Kıdemli
  • ****
  • İleti: 112
Ynt: Asembly Sorusu
« Yanıtla #3 : 01 Nisan 2017, 10:02:55 »
   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...

Çevrimdışı robikod

  • Kıdemli
  • ****
  • İleti: 160
Ynt: Asembly Sorusu
« Yanıtla #4 : 01 Nisan 2017, 14:53:17 »
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ı

 
« Son Düzenleme: 01 Nisan 2017, 14:54:21 Gönderen: robikod »

Çevrimdışı umitco

  • Kıdemli
  • ****
  • İleti: 186
Ynt: Asembly Sorusu
« Yanıtla #5 : 02 Nisan 2017, 03:41:23 »
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)


Çevrimdışı RaMu

  • Profesyonel Üye
  • *****
  • İleti: 2527
  • 1+1=0
Ynt: Asembly Sorusu
« Yanıtla #6 : 02 Nisan 2017, 15:19:09 »
Ödev mi bu soru?
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html