bagztov
Üye
- Katılım
- 5 Nis 2018
- Mesajlar
- 175
- Puanları
- 6
- Yaş
- 25
Herkese merhabalar, iyi forumlar.
Ben CCS C ve PIC16F877A kullanarak Proteus programında bir proje geliştirmeye çalışıyorum (ÖDEV v.s değil, tamamen gömülü sistemler üzerinde kendimi geliştirmeye çalışıyorum.)
Ben CCS C'de ADC kullanarak LM35'in çıkışından aldığım veriyi sıcaklık olarak LCD ekrana yazdırıyorum. Burada şimdilik bir sorun yok.
Devrede şu an 5 adet buton var.
RB0 - Bu buton benim menüye giriş için kullanmak istediğim buton. RB0 kesmesi ile butona bastığım zaman LCD'de <--- Menu ---> yazıyor. (Ancak daha menü tasarlayamadım. Yani geçiş falan yok, bu konuda da yardıma ihtiyacım var.)
RB4 - Bu buton benim 1. Motoru çalıştırmak için kullandığım buton. RB4-RB7 kesmesi ile bu butona bastığım zaman C portunda ilgili yerleri lojik-1 yapıyorum. Tekrar bastığım zaman lojik-0 yapıyorum.
RB5- RB4 ile aynı sadece C portunda farklı pinler lojik-1/lojik-0 oluyor.
RB6 - RB4 ile aynı sadece C portunda farklı pinler lojik-1/lojik-0 oluyor.
RB7 - Bu butona motor veya C portuyla ilgili bir şey bağlı değil. Sadece tasarlayacağım menüde yaptığım değişiklikleri kaydedip mikrodenetleyicinin hafızasına yazması için (Hafıza olayı hakkında da hiçbir fikrim yok maalesef. Adım adım ilerlemeye çalışıyorum.)
Şimdi ben LM35 ile sıcaklık okuyup LCD'ye yazdırdığım esnada RB4-7 pinleri ile motorları manuel çalıştırıyorum. RB0'a bastığım zaman LCD'de menü yazıyor ve ben bu esnada RB4-7 pinleri ile motorları açıp kapatmayı değil, menü arasında gezinmeyi ve tanımlayacağım değişkenlerin değerlerini arttırmak veya düşürmek için kullanmak istiyorum. Bunu nasıl yapabilirim acaba?
Denediğim yollar;
1- Dış kesme meydana geldiğinde INT_RB kesmesini disable yapmak.
Sonuç: Menü de motorlar çalışmadı ancak dış kesme içinde yazdığım buton okuma işlemleri de çalışmadı. Dış kesme içinde B portunu yeniden giriş olarak tanımlasam da B portundaki girişleri okuyamadım.
Birkaç şey daha denedim, mesela goto ile RB_0 kesmesi meydana geldiğinde goto komutuyla farklı bir alt programa geçmeyi denedim. O da olmadı.
menu isminde int8 tipinde bir değişken tanımladım. Switch case ile belki menü arasında dolaşırım diye düşündüm o da olmadı.
Şu menü olayını, menü'de LCD'ye yazdığım sıcaklık değerine menüden yeni değer atamayı ve atadığım değeri hafızaya yazmayı öğrenmem lazım. Bir de menüde süre değişkenini değiştirip motorların çalışma sürelerini de değiştirmeyi öğrenmem lazım.
Çok işim var çooook...
Şimdiden yardımlarınız için teşekkür ederim. Umarım ilgilenenler olur. Gerekirse devre şeması ve kodu yazabilirim.
Ben CCS C ve PIC16F877A kullanarak Proteus programında bir proje geliştirmeye çalışıyorum (ÖDEV v.s değil, tamamen gömülü sistemler üzerinde kendimi geliştirmeye çalışıyorum.)
Ben CCS C'de ADC kullanarak LM35'in çıkışından aldığım veriyi sıcaklık olarak LCD ekrana yazdırıyorum. Burada şimdilik bir sorun yok.
Devrede şu an 5 adet buton var.
RB0 - Bu buton benim menüye giriş için kullanmak istediğim buton. RB0 kesmesi ile butona bastığım zaman LCD'de <--- Menu ---> yazıyor. (Ancak daha menü tasarlayamadım. Yani geçiş falan yok, bu konuda da yardıma ihtiyacım var.)
RB4 - Bu buton benim 1. Motoru çalıştırmak için kullandığım buton. RB4-RB7 kesmesi ile bu butona bastığım zaman C portunda ilgili yerleri lojik-1 yapıyorum. Tekrar bastığım zaman lojik-0 yapıyorum.
RB5- RB4 ile aynı sadece C portunda farklı pinler lojik-1/lojik-0 oluyor.
RB6 - RB4 ile aynı sadece C portunda farklı pinler lojik-1/lojik-0 oluyor.
RB7 - Bu butona motor veya C portuyla ilgili bir şey bağlı değil. Sadece tasarlayacağım menüde yaptığım değişiklikleri kaydedip mikrodenetleyicinin hafızasına yazması için (Hafıza olayı hakkında da hiçbir fikrim yok maalesef. Adım adım ilerlemeye çalışıyorum.)
Şimdi ben LM35 ile sıcaklık okuyup LCD'ye yazdırdığım esnada RB4-7 pinleri ile motorları manuel çalıştırıyorum. RB0'a bastığım zaman LCD'de menü yazıyor ve ben bu esnada RB4-7 pinleri ile motorları açıp kapatmayı değil, menü arasında gezinmeyi ve tanımlayacağım değişkenlerin değerlerini arttırmak veya düşürmek için kullanmak istiyorum. Bunu nasıl yapabilirim acaba?
Denediğim yollar;
1- Dış kesme meydana geldiğinde INT_RB kesmesini disable yapmak.
Sonuç: Menü de motorlar çalışmadı ancak dış kesme içinde yazdığım buton okuma işlemleri de çalışmadı. Dış kesme içinde B portunu yeniden giriş olarak tanımlasam da B portundaki girişleri okuyamadım.
Birkaç şey daha denedim, mesela goto ile RB_0 kesmesi meydana geldiğinde goto komutuyla farklı bir alt programa geçmeyi denedim. O da olmadı.
menu isminde int8 tipinde bir değişken tanımladım. Switch case ile belki menü arasında dolaşırım diye düşündüm o da olmadı.
Şu menü olayını, menü'de LCD'ye yazdığım sıcaklık değerine menüden yeni değer atamayı ve atadığım değeri hafızaya yazmayı öğrenmem lazım. Bir de menüde süre değişkenini değiştirip motorların çalışma sürelerini de değiştirmeyi öğrenmem lazım.
Çok işim var çooook...
Şimdiden yardımlarınız için teşekkür ederim. Umarım ilgilenenler olur. Gerekirse devre şeması ve kodu yazabilirim.