Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: turksan - 08 Şubat 2016, 15:31:11

Başlık: eeprom kayıt proplemi
Gönderen: turksan - 08 Şubat 2016, 15:31:11
selam arkadaşlar yardım edermisiniz

proplemim şu 4 digit 7 segmentli bir 0-9999 ileri sayıcı
epromu okuyup kaydedebiliyorum
ama eprom  displayde  örnek veriyorum 300 iken sadece 255 e kadar kaydediyor ve sadece okuduğunda 45 rakamını görebiliyorum sayıcı eproma sadece her 255 de bir kayıt yapıyor sonra başa dönüp o dan itibaren eski kaydı yineliyor.

number = EEPROM_Read(0x00) ;//                     //EPROM read; //

     do{

      if(Button(&PORTB,7,1,0)){                  //EPROM write
                              Delay_ms(50);
                              digit++ ;
                              number = number +1;
                              PORTB = number;
                              EEPROM_Write(0x00, number);
                             }
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: ferit06 - 08 Şubat 2016, 16:20:45
Şu kısmına cevap vereyi;
"ama eprom  displayde  örnek veriyorum 300 iken sadece 255 e kadar kaydediyor ve sadece okuduğunda 45 rakamını görebiliyorum" 8 bitlik bir hücreye 255 e kadar yazabilirsin. 300 yazmak için 9. bite ihtiyacın var, 9. bit olamdığı için 300-255=45 görüyorsun. Number değişkenin de 8 bit olduğu için 255 e kadar yazabiliyorsun. Fazlasını yazmak için 16 bitlik değişken kulllan. 
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: tekosis - 08 Şubat 2016, 16:32:09
ferit06 ya ilaveten,
number sayısını 16 bit olarak tanımla.
eeproma yazdıracağın zaman 16 bitlik bu sayıyı 8+8 iki baytlık kısımlara ayır.
sonra iki adet eeprom adresine bu sayıları kaydet.

eepromdan okuyacağın zamanda bu işlemleri tersten yap
iki adet 8 bitlik sayıyı bir tane 16 bitlik sayı olarak birleştir, işlemlerini bu sayı üzerinden yap.
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: turksan - 08 Şubat 2016, 18:25:19
Arkadaşlar teşekkür ederim.
picbasicde bu proplemi çok çabuk çözüyorum ama oradada arada ABCD encoder kullanıyorum microc c de oldukca yeniyim. bu konuda bir örnek verebilirmisiniz.
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: turksan - 22 Şubat 2016, 01:18:41
teşekkür ederim proplemi micro c de çözdüm
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: OzkanAtas - 13 Aralık 2020, 23:54:52
255 ten fazla yazdırmayı nasıl yaptınız? rica etsem paylaşabilir misiniz?
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: volkanunal - 14 Aralık 2020, 09:54:27
Alıntı yapılan: OzkanAtas - 13 Aralık 2020, 23:54:52255 ten fazla yazdırmayı nasıl yaptınız? rica etsem paylaşabilir misiniz?

Bu şekilde yapabilirsiniz hocam,
https://www.youtube.com/watch?v=Pi9X6CNtQbE
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: kantirici - 14 Aralık 2020, 10:47:49
Merhaba,
Burada anlatılan yöntem işinizi görecektir.

https://ozcanfatih.wordpress.com/2016/02/01/c-dilinde-union-yapisi-ve/
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: OzkanAtas - 14 Aralık 2020, 16:53:07
Alıntı yapılan: volkanunal - 14 Aralık 2020, 09:54:27Bu şekilde yapabilirsiniz hocam,
https://www.youtube.com/watch?v=Pi9X6CNtQbE

Hocam teşekkür ederim bilgi verdiğiniz için; ama benim bilgisizliğime sayın lütfen, bunu mikroc ye dönüşümünü yapamadım. mikroc için yardımcı olabilir misiniz rica etsem?
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: OzkanAtas - 14 Aralık 2020, 16:55:39
Alıntı yapılan: kantirici - 14 Aralık 2020, 10:47:49Merhaba,
Burada anlatılan yöntem işinizi görecektir.

https://ozcanfatih.wordpress.com/2016/02/01/c-dilinde-union-yapisi-ve/

Hocam size de teşekkür ederim, fakat yine diğer arkadaşımıza dediğim şeyleri diyeceğim, lütfen kusura bakmayın tamamen benim eksik bilgimden kaynaklı. Mikroc ye aktaramadım bu yapıyı. rica etsem mikroc için yardımcı olabilir misiniz?

bir butona basınca sayacı arttırıyorum. bu sayacı lcd ekrana yazdırıyorum
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: volkanunal - 14 Aralık 2020, 17:20:29
Alıntı yapılan: OzkanAtas - 14 Aralık 2020, 16:53:07Hocam teşekkür ederim bilgi verdiğiniz için; ama benim bilgisizliğime sayın lütfen, bunu mikroc ye dönüşümünü yapamadım. mikroc için yardımcı olabilir misiniz rica etsem?

Merhabalar hocam union bir C keywordü olduğu için genel bir tabir. Platform ile akalı değil yani. orada platform bağlı olan yapı EEPROM.write olan kısım onu zaten kendinizde hangi apiye karşılık geliyorsa yapı.
Başlık: Ynt: eeprom kayıt proplemi
Gönderen: volkanunal - 14 Aralık 2020, 17:46:47
İnternetten mikro c için kod örneği buldum hocam, veriyi 8bit 8bit parçalayarak kullanmışlar, sayıcı değişkeninizi 16bit olarak tanımlamayı unutmayın. Örnekte X değişkeni sizin sayıcı değişkeniniz.

dim temp as byte               ' will be used to store the lower and higher 8-bits of x
temp = lo(x)                   ' get the lower byte of X
EEPROM_Write(address, temp)
Delay_ms(20)                   ' delay between successive use of routines Eeprom_Write
temp = hi(X)                   ' get the higher byte of X
EEPROM_Write(address+1, temp)  ' store it in the next location of "address"
Delay_ms(20)                   ' delay between successive use of routines Eeprom_Write

xtemp = Eeprom_Read(1) * 256 + Eeprom_Read(0)

Adresten okuyup tekrar 16bitlik sayı haline getirdim. Bu şekilde kullanablirsiniz. 0. ve 1. adreslerini kullandığınızı düşünüyorum.

EEPROM_Write(address, temp)

address değişkeninin başlangıç değerini 0 olarak ayarlamayı unutmayın. Doğru adrese okuma yazmak yapmak için.