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.
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.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme