dimmer hakkında yardım

Başlatan hackorsan, 05 Mayıs 2008, 20:54:42

hackorsan

arkadaşlar merhaba
ayarlı bir dimmer devresi yaptım sıfır noktasını tespit ettikten sonra 1 ile 10 ms arasında ayarlanabilir bir zamanda triac gate ucuna kısa bir puls gönderiyorum fakat ufak tefek kırpışmalar oluyor bekleme süresi bir türlü sabit kalmıyor yardımlarınız için şimdiden teşekkür ediyorum.
bla

picusta

Devrende LCD veya seri iletisimi hiçbir önlem almadan kullaniyorsan böyle olmasi dogal. pause komutuna fazla güvenme.
Ayrica kodundaki 67. satiri tekrar gözden geçirmelisin ve PORTB.4'ü pull-up yapmayi unutmussun.

hackorsan

ya usta cevabın için çok teşekkür ederim lcd yi
6 adet 7 segment displaye çevirdim biraz düzelme oldu

seri iletişimi iptal ettim teşekkür ederim


neyse geyik bir yana

devrede 6 adet display kullanıyorum tmr0 kesmesi ile displayleri sürüyorum 20 mhz kristal  kullandım pic f16f877
ayrıca B0 kesmesini de kullanıyorum  sıfır geçişi tespit etmek için

kesme vektöründe bayrakları kontrol ederek kesmenin nereden geldiğini tespit ediyorum
tek bir pause komutu dahi kullanmadım fakat 200 mikrosaniyelik oynamalar oluyor
bla

z

Timer kesmesi uygulamada iken b0 kesmesi gelirse dedigin gibi kayma olur.

Kesmeyi kestirmek lazim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

hackorsan

hocam kesme vektörüne girerken
etiket önünde

DISABLE
ile kesmeleri pasif yapıyorum


galiba problemi buldum sıfırgeçiş kesmesi herhangi bir komutta gelebiliyor. yani kesmeden sonrada program kaldığı yerden devam ediyor. tabi anaprogramda da sıfırgeçişi değerlendiren kısma gelene kadar biraz süre geçiyor bun çözüm bulmam gerekiyor anlaşılan
bla

z

Tamam disable ediyorsun da, ya timer kesmesi sifir gecis kesmesinden daha once gelmisse ve timer rutinleri islenirken b0 kesmesi geliyorsa.

Bu duruma cozum getirdinmi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

hackorsan

hocam günaydın

sıfırgeçiş noktası geldiğinde bir  ledin durumunu değiştiriyorum ve skopla bu ucu kontrol ediyorum sıfırgeçiş noktaları hiç şaşmıyor.
bla

alayli

Diğer arkadaşlar nereden nasıl gördüler bilemiyorum ama, ben kodu ve 67. satırını göremiyorum. Ama naçizane bir kaç önerim olacak.

*Herşeyden önce basic kullandığını farzediyorum ( Disable komutuna istinaden) ve basicteki software kesmelerini kullanarak çok da hassas ayarlama yapamayacağın için tavsiye etmiyorum.
*Öncelikle sıfır geçişlerini tespit için RB0 kesmesini donanımsal olarak kur ve kullan.
*RB0 ISR'si içinde RB0 kesmesini disable edip burada hassas zamanlama için yine donanımsal olarak TMR0 kesmesini kur ve kullan.
*TMR0 kesmesinin diğer sıfır geçişinden önce (<10ms) işini bitirip yeniden RB0 kesmesinin aktif edilmesini sağla

bu yöntemle sıfır geçiş kaçırmaz veya kırpışma yaşamazsın...

Saygılar...
Anca kazganmiş itmiş ilimiz törümüz erti. Türk Oguz begleri budun esiding. Üze tengri basmasar, asra yir telinmeser, Türk budun, ilingin törüngin kim artati? (udaci erti)

hackorsan

hocam teşekkür ederim
dediğiniz gibi yaptım güzel çalıştı
bla

hackorsan

bla

picusta

Picbasic'ten anlamam, ama o Disable/enable çiftinin dogru yerde oldugundan emin misin? kesme/resume arasinda olmasi gerekmez mi?
Ayrica kesmede pulsout komutunu kullanmak saglikli mi?
Hani timer0 ile led sürüyordun?

hackorsan

bla