Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

algoritma (16f877)

Başlatan annubiss67, 27 Mart 2005, 04:47:57

annubiss67

slm arkadaşlar.
pic konusunda deneyimli arkadaşlar biraz yardım edebilirmisiniz.
program yazarken biraz takıldım.(16f877 ile yazacam)
takıldığım konu şu;
programıma dışarıdan gelen bilgilere göre çıkışlarımı düzenlemeliyim,ayrıca lcd'ye göndermeliyim.
şimdi olayı şöyle anlatayım:
4 adet butonum var bunlar;SET,UP,DOWN,ONAY butonları.
program devam ederken set tuşuna bastığımda bu benim ilk değerim  lcd o anda daha önce kaydettiğim değer çıkmalı (örneğin 99değeri çıkmalı) ve bu değeri up ,down tuşları ile değiştirmeliyim.onay tuşuna bastığımda o değeri kaydetmeliyim ve programım kaldığı yerden devam etmeli ve bu değer geçerli olmalı.eğer up down tuşları ile değeri değiştirirken bir daha SET tuşuna basarsam ikinci değerimi ayarlamaya geçmeli ve lcd'de daha önce kaydettiğim değer çıkmalı onu up down tuşları ile değiştirmeliyim bu değerler 8 tane olacak 8 setden sonra bir kere daha set'e basarsam tekrar baştan başlamalı.onay tuşuna bastığımda program kaldığı yerden devam etmeli.bunu algoritmasını veya nasıl yapabileceğim konusunda deneyiml arkadaşlardan yardım istiyorum.şimdiden çok teşekkürler

ChaoTarr

Arkadaşım sen zaten algoritamın yazmışsın ki sadece akış diyagramı yapmamışsın. Üstelik bunun için algoritmaya da gerek yok direk başla program yazmaya.

Erol YILMAZ

Alıntı yapılan: "annubiss67"
program yazarken biraz takıldım.(16f877 ile yazacam)
takıldığım konu şu;

1- Ilk once ne istediklerini sırala diyecegim onu zaten yapmissin.

2- Dısarıda kullanacagin LCD buton vs gibi parcalarin nasil calistigi
konusunu arastir. (LCD ile nasil haberlesirsin? Butonu nasil okursun? vs )
Eger ADC ye giris yapacaksan disaridaki sinyali en temiz ve mantikli olarak okumak icin sinyal seviyesini ayarla .(Opamp, gerilim bolme, filtre vs) Cikista led-role kullanacaksan arabirimini hazirla.

3- PIC te kullanacagin cevresel ozelliklerin nasil calistigini ve nasil uayarlanabilecegini ogren.

4- Daha sonra giris cikislari listele.
Ozel giris cikis varsa onları ayir. Mesela PWM cikisi ADC girisi.
PIC teki bu ozel pinleri bu giris cikislara gore ayarla.

5- Devreni gerceklestir. PIC icin bir soket tak ve PIC i hemen takma. Sadece besleme gerilimini ver. olmasi gereken yerlerdeki gerilimleri olc. (Besleme gerilimleri referans gerilimler vs.)

6- Daha sonra PIC i tak ve en basitinden en zoruna dogru  islemleri sirasiyla gerceklestir. Problemleri duzelterek ilerle. Yazilim ve donanimi surekli takip ederek herseyin dusundugun gibi olmasini sagla.

7- Yazilimin ve donanimin artik hazirsa son optimizasyonlari yap.

Bu arada bence bunlari yapmak istiyorsan PICBASIC veya CCS gibi derleyici kullan, Daha rahat yapacaksin.

Kolay Gelsin...

annubiss67

arkadaşlar algoritmayı tam gerçekleştiremedim aslında bazı eksiklerim var.
şimdi set tuşu'na bastığımda interrupt altprogramı çalıştırmalıyım ama ikinci kez set'e bastığımda bunun alt programına nasıl geçecem, burda biraz sorunum.bu arada dışarıdan gelen bilgileri okuyabiliyorum.bu set tuşu ile ayarladığım değerler ile girişten okuduğum değerleri karşılaştırıp çıkışı buna göre değiştirecem.yani benim sorunum sadece bu SET tuşunda.

Veli B.

bir değişken tanımla : setsay
int esnasında altyordama git ve setsayı bir artır(default=0; setsay=setsay+1) yap.
int aktif yap ve çık
sonra bir daha set dedin diyelim altyordama zıpladı setsay 1 di.Şimdi setsay+1=2 oldu.
.
.
.
onay verdiğin anda setsay ile senin menü karşılaştırmanı yap  ve setsayı sıfırla.İlgili menü alt yordamına sap.İşlemini yap ve çık.Anlattıklarından çıkardıklarımı söyleyeyim, diğer tuşlar için kesme vektörüne yada alt yordama çıkışa gerek yok.Hepsinin tetikleyici olayı set tuşu.
Kolay gelsin...

annubiss67

yalnız kafama bi soru takıldı hocam.setledikten sonra set sayısına göre   değişiklik altyordamına  dallanacam ama int'i açmalıyım.int altyordamından tamamen çıkmıyorum değil mi?sadece int'i açıp değişiklikleri yapıp onay tuşuna bastıktan sonra tamamen çıkıyorum.  daha sonra program kaldığı yerden devam edecek.

Veli B.

Elbette. Yeni seti algılayabilmen için, her set dediğinde kesme altyordamına gittin.Saymanı yaptın ve dallanacaksın ama bu esnada kesmeyi tekrar enable yapacaksın ki kesme oluşumları algılanmaya devam etsin.Kesme ve dallanmalarda dikkat et.İkisinin toplamları sekizi geçmemeli.Derleyici hata vermez, bu tamamen programcının kontrolünde olan bir durumdur.

annubiss67