18F4550 kullandığım bir projede proteus ile simülasyon yaptığım zaman bu hatayı alıyorum.
[PIC18 EEPROM] PC=0x02CE. Modification of EECON1 whilst a read or write is in progress (RD or WR set) is not ambiguous and not supported. EECON1 is unmodified.
PROGRAMDA EEPROM İLE İLGİLİ KULLANDIĞIM KODLAR
sure değişkeni unsigned short olarak tanımlı
programın main kısmında yazılı: sure=EEPROM_Read(0);
kaydetme butonunda yazılı: EEPROM_Write(0,sure);
Programa eeprom satırlarını eklediğim zaman mikroc hata vermiyor ancak proteusda hata veriyor.
Bu sorun proteusdan mı kaynaklı yoksa ben mi biryerde yanlışlık yapıyorum ?
Anladığım kadarı ile Eproma bir yazma emri verdikten hemen sonra henüz yazma işlemi tamamlanmadan yeni bir yazma yada okuma emri veriyorsunuz. Özellikle yazma işleminin en azından yeni bir komut vermeden önce 10 ms bekletilmesi gerekir. Bu süre zarfında yazma işlemi tamamlanır ve ardından yeni bir yazma yada okuma yapabilirsiniz demektir. Şayet bu şekilde bir zamanlama hatası yapıyorsanız bu bir derleme hatası değildir. Dolayısıyla derleyici bu hatayı görmez. Ama Proteus uygulayıcıdır ve hata uygulama anında ortaya çıkacağı için görür hatayı. İki yazma yada yazmadan sonra okuma komutlarını verirken en azından 10 ms lik gecikme ekleyiniz programa. Okuma komutları gecikme istemez. Yanlızca yazma komutları ister.
Alıntı yapılan: ete - 03 Ocak 2021, 10:21:22Anladığım kadarı ile Eproma bir yazma emri verdikten hemen sonra henüz yazma işlemi tamamlanmadan yeni bir yazma yada okuma emri veriyorsunuz. Özellikle yazma işleminin en azından yeni bir komut vermeden önce 10 ms bekletilmesi gerekir. Bu süre zarfında yazma işlemi tamamlanır ve ardından yeni bir yazma yada okuma yapabilirsiniz demektir. Şayet bu şekilde bir zamanlama hatası yapıyorsanız bu bir derleme hatası değildir. Dolayısıyla derleyici bu hatayı görmez. Ama Proteus uygulayıcıdır ve hata uygulama anında ortaya çıkacağı için görür hatayı. İki yazma yada yazmadan sonra okuma komutlarını verirken en azından 10 ms lik gecikme ekleyiniz programa. Okuma komutları gecikme istemez. Yanlızca yazma komutları ister.
Ete
Cevabınız için teşekkür ederim eeproma yazma işleminden sonra 300mslik bir gecikme var sorun şu ki daha yazma komutunu göndermeden proteus yukarıda yazdığım hatayı her saniye veriyor.16F serisi kullanırken hiç böyle bişey yapmamıştı acaba 18F serisinde başka bir ayar mı yapmak gerekiyor ?
@Semiyun hatada eecon1 register hatası görülüyor. Normalde biz eproma yazarken veya okurken bu registeri kullanmayız, derleyiciler bizim yerimize bunu hallediyor. Burada ya derleyicide bir sıkıntı var bu işi yapmıyor yada proteusta bir sorun var. Mikroc sürümünüz nedir.
Alıntı yapılan: dnaci - 03 Ocak 2021, 19:16:14@Semiyun hatada eecon1 register hatası görülüyor. Normalde biz eproma yazarken veya okurken bu registeri kullanmayız, derleyiciler bizim yerimize bunu hallediyor. Burada ya derleyicide bir sıkıntı var bu işi yapmıyor yada proteusta bir sorun var. Mikroc sürümünüz nedir.
MikroC 7.6.0 sürümü, Proteus simülasyonunda program doğru çalışıyor sadece devamlı bu hatayı veriyor heralde proteusdan kaynaklı bir sorun.
Bir proteus hatası o zaman. Devreniz gerçekte sorunsuz çalışacaktır. Ancak eeproma sürekli veri yazmanız ömrünü kısa sürede tamamlamasına sebeb olur. 100bin yazma yapılabilir eproma.
Alıntı yapılan: dnaci - 03 Ocak 2021, 20:00:08Bir proteus hatası o zaman. Devreniz gerçekte sorunsuz çalışacaktır. Ancak eeproma sürekli veri yazmanız ömrünü kısa sürede tamamlamasına sebeb olur. 100bin yazma yapılabilir eproma.
Sıkıntı yok hocam sadece set tusuna basıldığı zaman veriyi kaydedecek.İlgilendiğiniz için teşekkür ederim.
ayarı bulunuyor. Aşağıdaki açıklamaya bakarsanız ;
_WRTD_ON_6H EQU H'7F'; Data EEPROM is write-protected
_WRTD_OFF_6H EQU H'FF'; Data EEPROM is not write-protected
_WRTD_ON_6H şeklinde kullanırsanız eproma yazamazsınız. Muhtemelen hata budur.
_WRTD_OFF_6H şeklinde kullanılmalıdır.
Ete
Hocam iyi bir noktaya değindiniz. Mikroc için config ayarlarına baktım öntanımlı olarak wrtd kapalı görülüyor. Mikroc config ekranı menü seçmeli tasarlanmış. @Semiyun config ayarlarını da merak ettim şimdi. (https://i.ibb.co/hcCdpLs/eeprom.png) (https://ibb.co/hcCdpLs)
Gerçekde deneyemedim daha ama sanırım gerçekde problem olmayacak çünkü proteusda da çalışıyor hata verdiği halde.Sanırım proteus ile alakalı bir sorun.