Toggle komutu yardım.

Başlatan cemilsivas, 01 Ocak 2021, 12:04:52

cemilsivas

symbol kirmizi=portb.1
symbol beep=portb.0
.
.
.

asiri:
for i=0 to 3
pause 500
lcdout $fe,1,"Yuksek Ates"
toggle beep
toggle kirmizi
pause 500
lcdout $fe,1
next i
Herkese merhaba arkadaşlar. Ben ısı ölçen bir devre yaptım. Program eğer ısı 38 dereceden yüksek ise asiri bölümüne gidip burada sesli ve ışıklı uyarı veriyor. Ayrıca lcd ekranda yüksek ateş yazısı çıkıyor. Bağladığım led ve buzzer program içinde çalışıyor. Ancak bu bölümde sadece led yanıp sönüyor. Buzzer çalışmıyor. Toggle komutunu yanlış mı kullanıyorum diyeceğim ama led çalışıyor. Bu konuda yardımcı olursanız sevinirim.
Not: Pinleri lede ve buzzere transistörler ile bağladım. Devreyi 5v ile besliyorum.

ete

Bazen toggle komutu sıkıntı çıkartabiliyor. Öncelikle komutun çalışıp çalışmadığını anlayabilmek için oraya buzzer değilde bir led bağla ve farklı renkte olsun ki diğer led ile karışmasın.
Toggle komutunun sorun çıkardığı durumlarda ben toggle ile aynı sonucu veren matematiksel ifade kullanıyorum.
[ Buzzer=1-Buzzer ] şeklindeki komut işini halledecektir. Buzzer'in burada bir pin yada bit değişkeni olması gerekir. Aksi taktirde verdiğim komut çalışmaz.

Kod'un tamamını verseydin, bu pinlerin girişmi çıkışmı ayarladığını da görmek mümkün olabilecek idi. Hangi işlemci ise PORTB yi kullanmışsın dolayısıyla  o pinlerin başka özel amaçlarla (Komparatör, analog pin vs) kullanılmadığını da varsayıyorum.


Ete



cemilsivas

Kullandığım pic 16f628a hocam. B portu çıkış olarak ayarlandı. Buzzeri program içinde farklı ölçümde de kullanıyorum orada çalışıyor. Bu etiket altında çalışmadı. Mesela asiri etiketi altındaki kodda ledi kapatıp buzzeri açsam buzzer çalışıyor. Sanırım toggle başka birşey yapıyor ama anlamadım.

Powered by EzPortal