PIC 16f876a dahili EEPROM ve dış kesme hakkında(SORU & SORUN)

Başlatan ucanelma, 25 Ocak 2012, 01:32:23

ucanelma

Merhaba, 

Ana programda dahili eeproma yazdığım bilgileri, kesme içerisinde okuyup işlem yapmak isterken, MPLAB-ISIS simulasyonu esnasında eeproma kayıt sırasında sonsuz döngüde adres belirten değişkeni sürekli arttırdığım halde adres her seferinde başa dönüyor... Kesme sırasında ise EEPROMdan okumayı hiç yapmıyor... Simulasyon EEPROM için de sağlıklı değerler verir mi? Breadboard üzerinde denemek daha mı mantıklı?

Ayrıca: dış kesme esnasında a/d dönüşüm yapılabilir mi? Dış kesmede EEPROM'u okumak yanlış bir hareket midir? Ya da dış kesmede EEPROM okuma esnasında döngü kullandım problem orada mıdır?  :-\ (Kesme içerisinde yapılabilecekler/yapılamayacaklar nelerdir bilginiz varsa çok yararlı olur.)

Ufak bir soru daha: A/D çevirim esnasında "ADC conversion started before" wait "time has expired following previous conversion or channel change and the output..." gibi bir hata aldım(birtakım ayarları değiştirdim ama fayda etmedi.) bu nedendir?

Not: Yaklaşık 240 satır kod olduğundan dolayı kodları buraya koyarak başınızı ağrıtmak istemedim.

Kabil ATICI

kritik zamanlama gerektiren konularda kesmeleri kapatılması veya program oluşturulurken kesme işleminin mümkün olduğunca kısa tutulması gerekiyor. (alsında kesmede yapılması gereken de budur)
Şart değilse kesmeyi işlemi işini ana döngü içinde yapmak yapmak daha yerinde olur..

kesme için bayrak kullan ve kapat. Sonra bayragı sonra ana döngüde kontrol et.
Kritik işlemlerde döngüyü kapat.
ambar7

ucanelma

Kesme problemini kökten çözdüm. A/D çevrim esnasında watchdog zamanlayıcısı pic'i sıfırlıyordu eeprom'a okuma yazma esnasında problem çıkıyordu, zamanlayıcıyı kapattım(mplab-configure-configuration bits-WDTE disable) o sorun da ortadan kalktı.

Son olarak, simulasyon, A/D çevirime gerekli zamanı vermediğimi söylüyor. Ancak ben simulasyonun düzgün çalıştığından şüpheliyim bu yüzden breadboarda bir prototip kurmayı planlıyorum... Windows'un gerçek zamanlı çalışmayışı A/D simulasyonunu etkiliyor olabilir mi?  ???