pic basicde lcd geri sayım yardım

Başlatan klorofil, 09 Şubat 2011, 00:58:24

klorofil

arkadaşlar ben pic basic de lcd ekranda zaman saydırmak istiyorum.mesela butona bastığım zaman 20 den geriye doğru saymasını istiyorum.
benim yazmaya çalıştığım program;


dim sayac as byte
dim zaman as byte
sayac=20
zaman=sayac-1

basla:

if portd.1=1 then print at 1,zaman,"     "

goto basla




bu şekilde bş mantık kurdum ama bir türlü ekranda zaman saydıramadım.acaba yanlış yada eksik yazdığım yer neresi.yardımcı olurmusunuz.





Maxim

öncelikle hangi derleyiciyi kullandığınızı bilmelisiniz,
kodlar proton+ , picbasic değildir.

Maxim

dim sayac as byte
sayac=20

basla:

if portd.1=1 then
sayac = sayac - 1
print at 1,1, dec sayac,"     "
if sayac=0 then sayac=20
endif

delayms 100
goto basla


ete

#3
Okulda hiç mantık okumadığın anlaşılıyor.
Bir yandan tuşa basınca geriye doğru saysın diyorsun ama diğer yandan sen yazdığın program parçasında saymayı bir şarta bağlı olmaksızın yapıyor ve tuşa basınca yalnızca değeri ekrana yazdırıyorsun.
Bu ikisi bağdaşıyormu? Bağdaşmıyor tabiiki.
Üstelik yaptığın açıklamanın iki çözümü var. Bunlardan birincisi tuşa basıldıktan sonra sayac geriye doğru saymaya başlasın (nereye kadar?)
bir diğeride tuşa basılınca ancak sayaç saysın. Maxim arkadaş bunu yapmış.
Öncelikle bu iki açıklamadan hangisi senin işini görecek onu belirlemen gerekiyor.
Bir tanesinin cevabını aldın zaten. Şayet diğer çözümü istiyorsan bunu onaylaman gerekecek yada en iyisi bu yazılanlara karşılık sen bir şeyler daha karala istersen. Yapamazsan birlikte yaparız.

Ete

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

Mucit23

#4
Programın akış diyagramını bilmen gerekir. Pic programlamak istiyorsan Bence kendine bir kitap al Pic nedir? nasıl çalışır? pic programlaması nasıl yapılır? Bunları iyice öğrenmelisin.

klorofil

sorunumla ilgilendiğiniz için teşekkür ediyoyum.haklısınız pic programlama mantığında eksiklerim var.benim yapmak istediğim tuşa bir kere basıldığında yirmiden geriye sıfıra kadar sayması.

zakbay

#6
Dim sayac As Byte
Dim Dongu As Byte 
sayac=20

basla:

If PORTD.1=1 Then

  For Dongu = 19 To 0 Step -1  
   sayac = sayac - 1
   print at 1,1, #sayac,"     "
  delayms 250
  Next
  
  While PORTD.1 = 1  ;tuş bırakılana kadar bekle
  Wend
 sayac=20   
EndIf

GoTo basla
Tek dostum çalışmak...

klorofil

çok tşekkür ederim arkadaşım.bilmediğim bazı komutlar var.ezbere kopyala yapıştır mantığı ile kullanmıyacam programı.bilmediğim komutları arştırıp öğrenecem inşallah.bana kendimi geliştirebilceğim bu seviyelerde komut öğrenmemi kolaylaştıracak program ödevlereri verebilrseniz sevinirim.en azından ne yapacağımı ve ne için uğrştığımı bilmiş olurum.