EEPROM kullanımı hakkında bilgi...

Başlatan . Kağan, 13 Aralık 2015, 13:00:11

Bahri Bilir

Bu arada değişkenlerin word tipinde olması gerektiğini unutmayın
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

. Kağan

#16
 Arkadaşlar kimse register ayarlarından bahsetmiyor. EEproma yazmak için register ayarı yapmak gerekiyormuş sanırım. :-\

ete

Öncelikle hangi epromdan bahsediyoruz yine belirtmniyorsunuz. Söyledik. Harici ve dahili epromlar var. Hangisinden bahsediyorsunuz?

Hangi registerlermiş onlar çok merak ettim doğrusu. Hiç bir registerle uğraşmadan paşa paşa epromların her türlüsüne yazıyorum ve okuyorum ve bunu öğretiyorum üstelik ama siz ortaya temeli olmayan bir laf atıyorsunuz yine iyice araştırmadan tabiiki.

Bu tür bilgiler bazı acemi üyelerin yanlış bilgilendirilmesine sebep oluyor. Bu şekilde bir bilgi verdiğiniz zaman neye dayandırdığınızda açıklayın ki bizde öğrenelim yada en azından görüp mukayese yapalım.

Sonuç olarak BASIC de EPROMA YAZMAK ve OKUMAK için REGISTER AYARINA GEREK YOKTUR diyorum. Aksini kim demiş ise yer gösterin bana.

Assembly de yazarsanız programı elbette register ve bitlerini kullanmak zorundasınız. Bununla karıştırmayasınız konuyu!!!!!.

Ete


. Kağan

   Tahir Bey selam,
Alıntı YapBu tür bilgiler bazı acemi üyelerin yanlış bilgilendirilmesine sebep oluyor. Bu şekilde bir bilgi verdiğiniz zaman neye dayandırdığınızda açıklayın ki bizde öğrenelim yada en azından görüp mukayese yapalım.

demişsiniz. Ben bilmediğim bir konuyu soruyor ve öğrenmek istiyorum. Acemi üyeler konuyu okurlarsa "benimde bilmediğimi ve anlamaya çalıştığımı" anlayacaktır.

İkinci olarak ilk mesajımda,
Alıntı YapAdcin1 den okuduğum değeri eğer 2 den büyükse set değeri olarak eproma yazmak ve daha sonra kullanmak istiyorum. Aşağıdaki gibi bir kod yazdım fakat 16f88 için eepromun "00" satırına nasıl gönderileceğini bilemedim.
şeklinde ne yapmaya çalıştığımı ve yapamadığımı belirttim.

Üçüncü olarak,
16F88 datasheetin 28. sayfasında eeproma yazma konusunda EECON1 register ayarlarından bahsediyor ve ben de aynı şeyi anlatmaya ve anlamaya çalışıyorum.

Dördüncü olarak,
Bana önerdiğiniz hiçbir kod ile EEPROM'a yazmayı başaramadım fakat çaresizlikten "Araştırırken" melabsın sitesinde örnek kodlar buldum ve pic16f88 e yazdırdım. SONUÇ: EEPROM'a yazdığını pici progladıktan sonra Pickit3 programmer yazılımının en alt kısmındaki EEPROM DATA bölümünde gördüm. Yazılan örnek kod aşağıdadır.

' Name        : EE.pbp
' Compiler    : PICBASIC PRO Compiler 2.6
' Assembler   : PM or MPASM
' Target PIC  : 12F, 16F or 18F types
' Hardware    : Non specific
' Oscillator  : internal or external
' Keywords    : READ, SEROUT, WRITE
' Description : PICBASIC PRO program to demonstate the EEPROM, READ and WRITE Commands.
' Works on targets with data EE only!!! Initialized address 0..3 and 8. Writes 10..63.
'

Include "modedefs.bas"     ' Include serial modes

SO Con 0                   ' Define serial output pin
B0 Var byte
B1 Var byte
B2 Var byte

EEPROM ["wxyz"]            ' EEPROM[0..3] = 119..122
EEPROM 8,[100]             ' EEPROM[8] = 100

mainloop:
   B0 = 63                 ' Set Size of EEPROM

   For B1 = 10 To B0       ' Check WRITE Command
     B2 = B1 + 100         ' EEPROM[10..63] = 110..163
     Write B1,B2
   Next B1

   For B1 = 0 To B0        ' Check READ Command
     Read B1,B2            ' Dump EEPROM Contents
     Serout SO,N2400,[#B2," "]
   Next B1

   Serout SO,N2400,[10,10] ' Skip 2 Lines
   Goto mainloop           ' Forever

   End


Adamlar burada bir sürü gereksiz satırmı yazmışlar yani. Ben 3 gündür EEPROMA "950" rakamını yazdırmayı bile beceremedim. Kaldı ki EEPROM daki dataları kullanabileyim.

Acaba kendimi ve istediğimi ifade edebildim mi? 

ete

Yaklaşımınız yanlış. Mesajınıza bakın;

"Arkadaşlar kimse register ayarlarından bahsetmiyor. EEproma yazmak için register ayarı yapmak gerekiyormuş sanırım. :-\"

Burada kinaye var. Yani kimse size olması gereken bir şeyi vermiyormuş gibi sitem ediyorsunuz. Soru benim bildiğim soru şeklinde sorulur. Kinaye ile sorulmaz. Lütfen bunu bir dahaki sorunuzda dikkate alınız. Sorunuzu daima dolandırmadan direk sorun diyorum.
Mesajı şöyle yazsanız hiç bir lafım olmazdı;
"Eproma yazmak için Regsiter ayarı yapmaya gerek varmıdır varsa hangi registerlere ne gibi değerler verilmelidir?"
Bu sorudur işte bilmediğiniz bir şeyi soruyorsunuz. Ama sizin mesajınızda soru yok kinaye var.

Size eproma nasıl yazılacağını gösterdim. Yapamıyorsanız bu sizin sorununuz. Kimseyi suçlamayın. Gösterdiğim şekli hem ben hemde burada öğrenenlerin tamamı kullanıyor. Ama dikkat ediyorum siz daima kestirmeden gitmeye heveslisiniz.
Öyle yapınca da ortaya anlamsız işler ve mesajlar çıkıyor maalesef.

Data sheet BASIC dili esas alınarak hazırlanmamıştır. Assembly temeline dayanarak hazırlanmıştır. Orada gösterilen örnek programlarda ASM de yazılmışlardır. Bahsini ettiğiniz register de yine ASM temelli kullanım için geçerlidir. Basic de de bunları kullanarak program yazabilirsiniz. Ama direk komutu olan bir işi dolaylı yoldan neden halledeyimki.
WRITE Adres, Bilgi şeklinde adam komut hazırlamış. Bir sürü register ayarına gerek olmadan bu komut istediğin işi yapıyorsa artık register falan unutacaksın. Çok gerekmedikçe kullanman anlamsız. Çok gerekmedikçe diyorum. Bazı özel durumlar ortaya çıkabilir. Bunlarda ancak ileri programcılık bilgisi veya tecrübesi gerekitir.
Mlabs sitesinden aldığınız program parçasıda ayrı bir enteresan.
EEPROM komutu işlemciyi programlarken yalnızca bir kere çalışacak şekilde  Epromunada sabit bir değer yazmak için kullanılır. Programlayıcı bu komut parametrelerini alıp eproma yerleştirir ve yalnızca bir kere çalışır. Eproma arada bir bilgi yazmak için kullanılan yada kullanılacak bir komut değildir. Aynı işi yapan başka bir komut var genellikle programcılar onu kullanırlar.

DATA @Adres, bilgi1,bilgi2,bilgi3.....,bilgi255
şeklinde kullanılan komut da aynı işi yapar. Gördüğünüz gibi bir şey yapmışda başarmış gibi konuşuyorsunuz ama aslında ne yaptığınızıda bilmiyorsunuz.

Aynı programda asıl program kısmında, eproma yazmak için;
Write B1,B2  (Burada B1 adres ve B2 ise veri amaçlı kullanılmış değişkenlerdir)
Yine daha altta ise yazılanların kontrolü amacı ile ,
Read B1,B2
komutlarını görebilirsiniz. Şimdi bunlar benim tarif ettiğimden farklı bir şeymidir.?
Üstelik yalnızca Byte değer kaydı gösterilmiş ve Word değerin nasıl kayıt edilip okunacağını anlatmamış bile adam.
Umarım ne demek istediğimi artık anlamışsınızdır.
Bundan sonra sizin mesajlarınıza ve sorularınıza cevap vermeyeceğim. Kimseyide kısıtlamıyorum. İsteyen cevap verir elbette.
Bu kararı şu nedenle aldım. Düşündüğünüz ile yazdıklarınız bir biri ile uyuşmuyor. Ben sizi yanlış anlıyorum ve bir dahaki sefere bir yanlış anlaşılma olmasın diye bunu yapacağım.

Ete

. Kağan

Ben kinaye falan yapmadım. :(

Nasıl soru sorulacağınıda, cevap verileceğinide bilecek kadar süredir (Yaklaşık 17 yıl) üniversitede eğitim veriyorum.
Pic programlama ya hobi olarak başladım ama sizinde sayenizde son 2 senedir çok şey öğrendim.

Cevap verseniz de vermeseniz de canınız sağolsun Tahir bey. :(

Not: Belkide bugün alıngan bir gününüzdesiniz dir.

Maxim

#21
bence ETE ninde bir sabrı var
bu kadar basit konu niye uzadı hayret.

picbasic pro nun helpine baktığınız zaman
write, read komutlarını ve nasıl kullanıldığını göreceksiniz
"boşuna sağa sola bakmaya veya başka bir şey yapmanıza gerek yok"
adamların kendi help dosyasında yazıyor bu.


TEST var byte
TEST=100

WRITE 0, TEST:pause 10
TEST içerisindeki byte tipindeki 100 rakamını eepromun 0 adresine yazar

READ 0, TEST
eepromun 0 adresindeki byte cinsinden 100 rakamını test e alır.

-------------------------------
size proton+ tarafını göstereyim örnek olması açısından
gene ayar-tanımlama falan yapmıyorsun
1 milyon kere yazdım ve denedim oluyor yani.

Dim TEST As Byte
TEST=100

EWrite 0, [TEST]

TEST = ERead 0

Bahri Bilir

Maxim bu datasheeft ve help dosyalarında bilgilerin olduğunu söylemekteki amacınız gerçekten yol göstermek mi?

Eğer öyleyse soruyu soran kişilere de bakmanızı öneririm.Bunu bilemeyecek seviyede mi acaba ?

Soruyu soran kişi o kaynaktan anlamıyor (ingilizce olduğu dikkatinizi çekmiştir) ki soruyor.
"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

Burak

17 yıldır öğretim elemanı ve Doktora sahibi olduğundan mütevellit ingilizce okuyup anlayabildiği çıkartımını yapabilirsin en azından dimi ? .. Bu arada Maxim'in açıklamasında yanlış bir ifade göremiyorum ... Son olarakta gergin ortamları daha gergin kılmamak için yapıcı , hoşgörülü ve itinalı olma erdemliliğini sende göremiyorum ... Umarım zamanla edinirsin ..

Her neyse , sorularımızı ve ifadelerimizi kibarlık çerçevesi içerisinde saygı ve sevgi ifadeleriyle , afaki olmayan tavırlar ve feveran ünlemleri olmaksızın belirtip paylaşmak zorunluluğumuzun , değil forum adabı , toplumsal ölçütlerle ortaya koyulması gereken bir gereksinim olmasından hiç kimsenin şüphe duymadığı kanaatindeyim ...

Konu ile ilgili olan açıklamaların yeterli olmasından ve konu dışı açıklamaların uzamaması için konuyu kilitliyorum ...

Burak
Ω Gens Una Sumus Ω

Powered by EzPortal