Kesmeyi şarta bağlı olarak açıp kapatmak

Başlatan gogoce, 10 Haziran 2017, 13:05:58

gogoce

Merhaba,
16f877 ile portb değişim kesmesi kullanarak encoder okuması yapıyorum. Programda bazı durumlarda kesmeye gitmesini engellemek için nasıl bir koşul izlemem gerekiyor
IF PORTB.2=0 THEN
INTCON.7=1 ;kesmeler açık
bayrak=0
ELSE
INTCON.7=0 ;TÜM KESMELER KAPALI
ENDIF
bu şekilde yaptığım zaman 1 defadan sonra kesme çalışmıyor
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Bu komutta PORTB.2 ye basılırsa ancak kesme aktif oluyor. Basmadığın müddetçe kapalı kalıyor. Bance bir kez daha düşün bu şartı. Daha akıllıca bir şarta bağlarsan olur. Bu bence çok kullanışsız. Kesmenin çalışması içn elin sürekli PORTB.2 de ki buton yada anahtar her neyse onun üzerinde olması gerek. Sence mantıklımı. Tersini yapsan belki daha mantıklı olur.

Ete

gogoce

Pullup kullanıyorum hocam . portb.2 motoru çalıştıran rölenin kontağı. Röle çekiliyse motor dönüyor encoder saysın diye düşünmüştüm beceremedim
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Okadar basit değil bu iş. Röleyi kim hangi şartla çekiyor. Sanırım sıkıntı yaratan kısım bu.
Sen PORTB.2=0 ise kesme açık olsun değilse kapalı olsun demişsin. Röle 0 ile çekmez.
Bence röleyi kim çektiriyor ise oraya KES=1 demen ve altınada ;
GIE=KES demen daha uygun olur .
Böyece kes=1 olduğu müddetçe global kesmeler aktif olur ve sistem çalışır. Ancak dediğim gibi röleyi kim çektiriyor ise çektirmediği konumada KES=0 demek gerekir.

Ete

gogoce

Röleyi ben çektirmiyorum hocam . Mevcut makinanın sistemine ilave yapıyoruz. Makine ileri gidiyor - makine geri gidiyor diye uyarı vereceğiz. dfplayeri farklı amaç için kullanacağız. Operatörü uyarmak için. Diğer algoritmalara etki ettiğinden makine çalışmazken portb2=0 iken kesmeler aktif olsun istiyordum beceremedim. Portb tamamı giriş ve pullup aktif. Dolayısıyla portb.2=0 olduğunda girişi algılıyorum
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Anlaşılan programın yaptığı fazladan işler var ve onlarla oyalanırken kesmenin açılması kapanması sekteye uğruyor gibi gözüküyor.
Programın tümüne bakmak gerekir. Yoksa bu sistem çalışması gerekir.
Ete

gogoce

Whıle wend döngüsünde takılıyormuşum hocam problem çözüldü teşekkürler
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Powered by EzPortal