ze_tr
Üye
- Katılım
- 25 Kas 2006
- Mesajlar
- 520
- Puanları
- 6
tek pikten yazılım emulasyonu ile yapmanız da mümkün. Ancak CCP 2 adet olduğu için 3. pwm çıkışını emule etmeniz biraz zor olur. Çok zaruri değil ise 24 serisi picler işinizi daha kolay görür. 2den fazla pwm modülü olan mculara da bakabilirsiniz.PICF16877'de CCP portu sanıyorum 2 adet var, ben 3 adet motor için bu dediklerinizi bir pic16f877 üzerinde yapabilir miyim? Yoksa compare modunu program içinde halledip
(yani if (pals=x) { motor = 0 ); } gibi yazıp sadece giriş çıkış pinlerini kullansam olur mu ?
puls sayma işini portb durum değişikliği kesmesine ait flagini (bayrağını) kontrol ederek kesmesiz de kullanabilirsiniz. 3 takodan gelen uçları, voltajlarını ve sinyal formlarını 5V, kare dalga haline getirerek b4-b7 arası bacaklara bağlayabilirsiniz. Sinyal seviyesindeki durum değişikliklerinde hangi bacaktaki değişti ise (önceki değeri ile kıyaslayarak) ilgili takoya ait sayacı bir arttırabilirsiniz. Daha sonra da puls değerlerine ve nihayet hedef puls değerlerine ulaşıp ulaşmadığınıza bakabilirsiniz.
Ben bir adet motor için bir adet mcu kullanacağınızı düşünerek compare modundan bahsetmiştim. Üçünü bir arada kullanacaksanız yazılım emulasyonu ile yapın.
Bu arada size hız gerekli olabilir. Özellikle daire çizdirme işini mcuya yükleyecekseniz. Yüksek MIPS değerli olan mcular size avantaj sağlar.
Örneğinizde kullandığınız değişkenleri ne amaçla kullandığınızı bilmediğim için tam anlayamadım. Siz aklınızdan geçen mantığı yazılıma dökün. Hatalar için yardımcı oluruz inşaallah.