Şimdi Ara

Pic Proglamlama Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4
Cevap
0
Favori
960
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar yavaştan bu pici programlamaya başladım. Sitelerde okuduklarımdan anladığım kadarı ile basit basit bir şeyler yapmaya çalışıyorum. İlk olarak butona bastığımda 2 sn ledi yakacak, sonra 4 sn beklicek sonra 1sn ledi yakacak bir devre yapmaya çalışıyorum (burdaki amaç basit döngüleri kullanıp isiste simülasyon yapmayı becerebilmek :) ). Bu amaçla microcode studio plusta basic ile aşağıdaki kodları yazdım ve complier olarak pic basic pro 2.47 kullanmaktayım.

    @ DEVICE pic16f84a
    @ DEVICE pic16f84a, WDT_OFF
    @ DEVICE pic16f84a, PWRT_ON
    @ DEVICE pic16f84a, PROTECT_OFF
    @ DEVICE pic16f84a, XT_OSC

    TRISB=%00000001
    PAUSE 70
    BASLA:
    IF PORTB.0=1 THEN
    HIGH PORTB.1
    PAUSE 2000
    LOW PORTB.1
    PAUSE 4000
    HIGH PORTB.1
    PAUSE 1000
    LOW PORTB.1
    ENDIF
    GOTO BASLA
    END

    Ancak isiste simülasyona başladığımda şöyle problemler oluşuyor:
    1- Butona basmadan led sürekli yanıyor, ben butona basınca bir süre sonra sönüyor.
    2- Led sönünce tekrar butona basıyorum. Bu durumda led yanıyor, bir süre sönük yanıyor ve tekrar yanıyor. Bu durumda devre düzgün çalışıyor gibi görünüyor; fakat led 2 sn yanıcağına 5 sn yanık kalıyor simülasyonda.

    Sizce nerelerde hata yapıyorum. Program basit ama daha çırağız bu konularda yardım







  • öncelikle, pic in ilk anda tüm çıkışları 1 olur bu çok kısa süren bi süreçtir ama yazılımda yavaşlama ile uzun sürebilir ya da kafasından bi değer atamış da olabilir.. bu kafadan değer atamayı önlemek için öncelikle programın başında tüm portları sıfırlamak yararına olacaktır.
    zaman farkı olayı ise yine isisin pc kasması durumunda real time da çalışmamasından kaynaklanıyor olabilir, altta ünlem işaretine tıklayarak uyarılara bakabilirsin.. ayrıca pic e program yazarken osilatör ayarını doğru yapmalısın.. programı 4mhz lik kristal ayarında yazıyorsan isiste de entegrenin detaylarından bu kristal değerini girmelisin..
  • Çıkışları başlangıçta sıfırlayıp tekrar deneyeceğim. Programı yazarken krsital ayarı ile ilgili herhangi bir işlem yapmamıştım. Tekrar gözden geçireyim. Teşekkürler.
  • PORTB.0 ucuna pull-down direnç takmazsanız Pic havadan gelen elektromanyetik dalgalardan etkilenir ve girişi High olarak algılayabilir. Bu sorunu çözmek için PORTB.0 ile şase arasına 10K direnç takmanız lazım.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.