Merhaba. Step motor sürücüsü için ccs c'de kod yazmaya başladım. Elimde şimdilik boşta fiziksel pic olmadığı için, Proteus'ta sanal pic ile deneme yapıyorum.
Motor sürücüsünde aynı kodların sürekli tekrar etmesi gerekiyor. Main fonksiyonunda if ve else ile CW ve CCW yönleri için kodları yazdım. Sürekli tekrar etmesi için while (true) kodunu kullanıyorum. Ancak Proteus bu kodu algılamıyor.
output_b(0b01100001); delay_ms(200); output_b(0b01010001); delay_ms(200); output_b(0b10010001); delay_ms(200); output_b(0b10100001); delay_ms(200); böyle bir kod yazdım. Bunu while ile sürekli tekrarlamasıni istiyorum. Sorunsuz derlenmesine rağmen, Proteus'ta çalışırken 0b1010001'den sonra duruyor, başa (0b01100001'e dönmüyor. Sorun nerede?
İnternetten indirdiğim hazır kodları da denedim, onlarda da while komutları Proteus'ta çalışmıyor, simülasyondaki pic programın sonuna gelince duruyor, öyle kalıyor. Basit bir fonksiyon yazıp goto komutu ile döndürünce sorunsuz döngü yapıyor. Ama bir türlü while ile döngü yapamadım. Sorun nerede olabilir?
Pic olarak ucuz ama iş gördüğü için 16f628a kullanacağım. Ona göre kod yazıyorum.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Pic programlamanın üstadları da goto kullanmayın, while kullanın diyor. Goto sorun çıkarabilir diyor. Goto yapınca program main fonksiyonunda sıkışıp kalmaz mı?
Benim kafamdaki proje main fonksiyonunda if saat yönü(CW), else saat yönünün tersi(CCW) olacak şekilde if else ikilisi ile akışı yapacağım.
Birinci alt fonksiyon yön fonksiyonu ile CW/CCW ayarlayacağım. Yön fonksiyonu 1 döndürdüğünde CW, 0 döndürdüğünde CCW olacak.
İkinci alt fonksiyon olarak hız fonksiyonu oluşturacağım. delay_ms komutuna da hız fonksiyonunun döndürdüğü değeri gireceğim. Şimdilik sabit delay veriyorum, kendimi biraz geliştirince hız fonksiyonunu da ekleyeceğim.
Yön fonksiyonu A0 pininin lojik durumunu döndürecek. Hız fonksiyonu da A1, A2 ve A3 pinlerinin lojik durumunu döndürecek. A1 0 iken hızlı A2 0 iken orta A3 0 iken yavaş olacak. Hız ve yön seçimini jumperlarla yapacağım.
Şimdi bir sorun daha var. Kristal girişleri Port A'nın 6 ve 7. pinleri ile paylaşımlı yapıdaymış. Şimdi PIC'i çalıştırmak için kristal bağladığımda portA çalışmaya devam eder mi?
İlk defa pic programlama işine giriyorum. Umarım altından kalkabilirim. Projeyi tamamlarsam burada paylaşırım bir yararımız dokunur. Süreceğim motor lazer yazıcıların ana motoru, mitsumi m49sp-2k, eski bir yazıcıdan söktüm. https://www.mitsumi.co.jp/latest/Catalog/compo/motor/m49sp2k_e.html
< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 14 Mart 2022; 15:9:42 >
Step motor sürücüsü için ccs c'de kod yazmaya başladım. Elimde şimdilik boşta fiziksel pic olmadığı için, Proteus'ta sanal pic ile deneme yapıyorum.
Motor sürücüsünde aynı kodların sürekli tekrar etmesi gerekiyor. Main fonksiyonunda if ve else ile CW ve CCW yönleri için kodları yazdım. Sürekli tekrar etmesi için while (true) kodunu kullanıyorum. Ancak Proteus bu kodu algılamıyor.
output_b(0b01100001);
delay_ms(200);
output_b(0b01010001);
delay_ms(200);
output_b(0b10010001);
delay_ms(200);
output_b(0b10100001);
delay_ms(200);
böyle bir kod yazdım. Bunu while ile sürekli tekrarlamasıni istiyorum. Sorunsuz derlenmesine rağmen, Proteus'ta çalışırken 0b1010001'den sonra duruyor, başa (0b01100001'e dönmüyor.
Sorun nerede?
İnternetten indirdiğim hazır kodları da denedim, onlarda da while komutları Proteus'ta çalışmıyor, simülasyondaki pic programın sonuna gelince duruyor, öyle kalıyor.
Basit bir fonksiyon yazıp goto komutu ile döndürünce sorunsuz döngü yapıyor. Ama bir türlü while ile döngü yapamadım.
Sorun nerede olabilir?
Pic olarak ucuz ama iş gördüğü için 16f628a kullanacağım. Ona göre kod yazıyorum.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 13 Mart 2022; 20:20:55 >
< Bu ileti mini sürüm kullanılarak atıldı >