Enerji kesilmesini algılama, Kesme ve Eproma yazma sorunu

Başlatan dyonizos, 03 Nisan 2012, 11:20:52

dyonizos

Selam arkadaşlar,
Normalde RB0 kesmesini kullanarak enerji kesildiğinde verileri eproma kayıt ettirebiliyoruz. En azından ben bu yolla yapıldığını biliyorum.
Peki programımız içinde RB0 dış kesmesini başka bir amaçla (pulse okumak için) kullanıyorsak enerji kesilmesini algılayıp eproma dataları yazdırmanın başka yolu varmı dır?

Maxim


arslan74


1- Main program altında sürekli o bacağı kontrol edebilirsin.
2- CCP bacağının kesmesini kullanabilirsin.
3- Eğer timer interrupt'un varsa orada da kontrol edebilirsin.

dyonizos

Pic olarak 16f877 yada 18f452 kullanabilirim. Su anda 16f877 ile yapiyorum. Rb0 disindaki b portlarimda dolu.

arslan74

Alıntı yapılan: dyonizos - 03 Nisan 2012, 12:03:04
Pic olarak 16f877 yada 18f452 kullanabilirim. Su anda 16f877 ile yapiyorum. Rb0 disindaki b portlarimda dolu.

O zaman sana 1. ve 3. maddeler uyar.

Yada 18f542 ile üç tane harici kesme var, o pic gec onları kullan.

jackal183

enerjinin kesilip kesilmemesi seni bağlamaz, sen timer interruptında (atıyorum)10 ms de bir datalarını eeproma kaydedersin

dyonizos

Alıntı yapılan: jackal183 - 03 Nisan 2012, 14:08:09
enerjinin kesilip kesilmemesi seni bağlamaz, sen timer interruptında (atıyorum)10 ms de bir datalarını eeproma kaydedersin

eeprom a yazma ömrü 1 milyon. bu durumda çok kısa bir süre sonunda eeproma artık yazamaz duruma gelmezmi?


omereliusuk

#8
picin boşta olan herhangi bir pinden b0 pinine uygun şekilde bir diode bağla.

if bostaki_pin=0 then gosub eeprom_yaz
'boşta olan pin 0 ise yani elektrik gitmiş ise eeprom_yaz alt rutinine git ve eeproma bilgileri kaydet.

ibrsel

Alıntı Yap
picin boşta olan herhangi bir pinden b0 pinine uygun şekilde bir diode bağla. boşta olan pin 0 ise yani elektrik gitmiş ise eeprom_yaz alt rutinine git ve eeproma bilgileri kaydet.

Eğer elektrik kesintisi olduğunda program bu satırı geçmiş ise tekrar bu satıra gelecek enerji kalmaya bilir,vebilgileriniz kayıt edilmeyebilir. En güzeli bunu B0 interrupt ı ile okutup elektrik kesildiğinde EEproma kayıt yaptırmaktır.Daha güvenli hale getirmek için;

B0 interrupını 7805 in giriş ucundan gerilim bölücü ile okutmak.7805 in çıkış ucuna 2200uF gibi elektrik kesildiğinde size bir süre daha enerji sağlayacak kondansatör bağlamak..

omereliusuk

b0 interrupt'ı açık olacak. aksi halde eproma kayıt olmayabilir. bir de tabi en az 1000 mf lık bir kondansatör bağlamak gerekir  ki o arada elektrik pici de resetlemesin <bunu yazmaya ihtiyaç duymamıştım.>. bir de interrupta geçtiği zaman tüm portları kapatalım ki enerji sarfiyatı en az değere düşsün.

papsukkal

ben kesmelere bel bağlamaz beslemeden önce aldığım örnek voltajı boştaki herhangi bir pine irtibatlar, enerji kesildiğinde filitre kondansatörleri boşalmadan bunu algılatır, alacaksam diğer tedbirlerimi de alırdım. hatta kesme kullansam bile enerji var sinyalimi filitre kondansatörlerinden öncesinden alırdım.