Şimdi Ara

FLOAT Değişkenini EEPROM a aktarma. (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
28
Cevap
1
Favori
3.526
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 12
Sayfaya Git
Git
Giriş
Mesaj
  • https://www.arduino.cc/en/Reference/EEPROMPut

    EEPROM.put() diye bişey varmış bak her türden veriyi yazıyor. Bunu niye kullanmıyorsun?
  • quote:

    Orijinalden alıntı: prax

    quote:

    Orijinalden alıntı: Liu Kang

    Bu kullandığınız hangi kütüphane, ne ortamında çalışıyorsunuz, hepsi muğlak bunlardan hiç bahsetmemişsiniz. Öyle zannediyorum ki siz henüz başlangıç aşamasındasınız (ve belli ki yalnış gidiyorsunuz*). Daha önce lucky16'nın bahsettiği fonksiyonlar kütüphanede varsa onları kullanın, bu for döngüleriyle anlamadan uğraşmayın.

    Yaşadığınız problem lcd.print fonksiyonundadır, bunun hakkındaki açıklamaları incelediniz mi? Girdi parametrelerinin türleri nedir?

    * Yalnış gidiyorsunuz dedim ya, bana kırılmayın, basitçe izah edeyim. Arduino sendromu dediğim bir durum var. Arduino modası rüzgar gibi eserken kendinizi buna bırakıp savrulmak zorunda değilsiniz. Bu esasen bir kod paylaşım sistemidir ve buna gerçekten hakim olmak isterseniz, dışarda esaslarını bağımsız bir şekilde öğrenmeniz gerekir. Önce C öğrenin. Bunu bilgisayarda bilgisayar için yazılım üreterek öğrenin. Çok iyi Türkçe kaynaklar vardır. Kolayca bulup kurabileceğiniz ve hiç baş ağırtan görsel pencerelerle uğraşmadan basitçe komut satırından kullanabileceğiniz açık kaynak kodlu özgür yazılımlarla, mesela GCC ile derlemeyi öğrenin, GDB ile hata gidermeyi öğrenin, çalıştırılabilir dosyanın içeriğini gösterecek araçlar vardır açın bakın sembolleri anlayın. Bunlarla uğraşırken ayrıca donanımı da anlama fırsatı bulacaksınız ki çok şey öğrenirsiniz. Geçer-orta seviye İngilizce varsa daha iyidir, yoksa bir paralel işlem olarak da İngilizce öğrenmeyi başlatın Standart kütüphanelerin kılavuz sayfaları vs için gereklidir.

    Teşekkür ederim. yardımınız için. Dediğiniz gibi Bu şekilde örnekleme sistemi bana da yanlış gelmeye başladı artık. C yazılım dünyasına baştan başlamak lazım dediğiniz gibi. Ondan sonra C++ diye sürüp gider. ingilizcde bilgim orta düzeyde bu da yeterli gelir muhtemelen . çok fazla terim olduğunu zannetmiyorum . . . Doğru adımdamıyım acaba , C yazılımına başlamak mu yoksa farklı Farklı kodlar mı Gelecek hitap ediyor. Sizce.

    Alıntıları Göster
    quote:

    Orijinalden alynty: prax

    quote:

    Orijinalden alynty: Liu Kang

    Bu kullandy?ynyz hangi kütüphane, ne ortamynda çaly?yyorsunuz, hepsi mu?lak bunlardan hiç bahsetmemi?siniz. Öyle zannediyorum ki siz henüz ba?langyç a?amasyndasynyz (ve belli ki yalny? gidiyorsunuz*). Daha önce lucky16'nyn bahsetti?i fonksiyonlar kütüphanede varsa onlary kullanyn, bu for döngüleriyle anlamadan u?ra?mayyn.

    Ya?ady?ynyz problem lcd.print fonksiyonundadyr, bunun hakkyndaki açyklamalary incelediniz mi? Girdi parametrelerinin türleri nedir?

    * Yalny? gidiyorsunuz dedim ya, bana kyrylmayyn, basitçe izah edeyim. Arduino sendromu dedi?im bir durum var. Arduino modasy rüzgar gibi eserken kendinizi buna byrakyp savrulmak zorunda de?ilsiniz. Bu esasen bir kod payla?ym sistemidir ve buna gerçekten hakim olmak isterseniz, dy?arda esaslaryny ba?ymsyz bir ?ekilde ö?renmeniz gerekir. Önce C ö?renin. Bunu bilgisayarda bilgisayar için yazylym üreterek ö?renin. Çok iyi Türkçe kaynaklar vardyr. Kolayca bulup kurabilece?iniz ve hiç ba? a?yrtan görsel pencerelerle u?ra?madan basitçe komut satyryndan kullanabilece?iniz açyk kaynak kodlu özgür yazylymlarla, mesela GCC ile derlemeyi ö?renin, GDB ile hata gidermeyi ö?renin, çaly?tyrylabilir dosyanyn içeri?ini gösterecek araçlar vardyr açyn bakyn sembolleri anlayyn. Bunlarla u?ra?yrken ayryca donanymy da anlama fyrsaty bulacaksynyz ki çok ?ey ö?renirsiniz. Geçer-orta seviye Yngilizce varsa daha iyidir, yoksa bir paralel i?lem olarak da Yngilizce ö?renmeyi ba?latyn Standart kütüphanelerin kylavuz sayfalary vs için gereklidir.

    Te?ekkür ederim. yardymynyz için. Dedi?iniz gibi Bu ?ekilde örnekleme sistemi bana da yanly? gelmeye ba?lady artyk. C yazylym dünyasyna ba?tan ba?lamak lazym dedi?iniz gibi. Ondan sonra C++ diye sürüp gider. ingilizcde bilgim orta düzeyde bu da yeterli gelir muhtemelen . çok fazla terim oldu?unu zannetmiyorum . . . Do?ru adymdamyyym acaba , C yazylymyna ba?lamak mu yoksa farkly Farkly kodlar my Gelecek hitap ediyor. Sizce.

    Evet, mikrodenetleyici ortamy için C ö?renin, hiç dikkatinizi da?ytmayyn bu çok önemli bir yatyrymdyr. Y?in iki uç noktasy var. Sizi burda ilgilendiren uç; donanym seviyesinde olmak, assembly ile programlayyp her türlü ayryntyyla u?ra?mak. Bu durumda programlama olasylyklary maksimum, kodlary organize etme yetene?i minimumdur. Çok yüksek bir çözünürlükte çok yava? hareket edersiniz. C dilinin en önemli özelli?i bu çözünürlük seviyesinden vazgeçmeden organize etme yetene?ini yükseltmesi ve sonuçta çok hyzly hareket etme yetene?i kazanyrsynyz. C, ekran karty sürücüsü gibi bir?ey Üst seviye diller soyuttur ve fikirlere dayanyr, yaryn ba?kasynyn aklyna daha iyi bir fikir gelir, yepyeni bir programlama platformu do?ar. C ise tamamen mekanik. Daha iyi i?letecek bir fikir yok çünkü zaten mantyksal synyrlarynda. Tek boyutlu programlama manty?y var oldukça bu da var olacak.




  • quote:

    Orijinalden alıntı: elektro_gadget

    https://www.arduino.cc/en/Reference/EEPROMPut

    EEPROM.put() diye bişey varmış bak her türden veriyi yazıyor. Bunu niye kullanmıyorsun?

    denedim fakat yapamadım. C programlama diline baştan başlıyorum . artık hayırlısı :-) teşekkürler emeği geçen herkese

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • prax P kullanıcısına yanıt
    Çalışmamda arduino mega2560 kullanıyorum. ADC üzerinden aldığım anolog örneklemeleri arduinoda işleyip ekrandan grafikde görmek istiyorum.Problemim, aldığım dataları dahili eeprom üzerinde 0-255 aralığında hafızaya aldırabiliyorum.Dahili eeproma 255 üzeri örnekleme aldığımda sayaç sıfıra dönüyor.
    Bu sorunumu aşma adına

    EEPROM.write vede EEPROM.read yerine EEPROM.put vede EEPROM.get uygulaması üzerine baya araştırma ve denemeler yaptım hiç bir sonuca varamadım.Arkadaşlar çalışmamda lazım olabilecek kodumu buradan paylaşıyorum.Arkadaş vakti olan arkadaşlar bana yardımcı olursan sevinirim




    void putv(int v) {

    }
    void Lcdputv(int x, int y, int v) {

    }
    void Menu(int Mn) {

    }
    unsigned char Key(unsigned char K) {
    if (digitalRead(K) == LOW) {

    unsigned char read_adc(int s, unsigned char adc_input) {

    void setup() {
    Serial.begin(115200);
    pinMode(A7;
    lcd.begin(16, 2);

    Menu(0);
    for (int i = 0; i <6; i++)

    }
    void loop() {while (1)
    {if (Key(Up))
    if (Key(Down))

    if (Key(Ok))switch (m) {

    case 1:

    Lcdputv(0, 0, 0x0 + s);

    delay(150);}}
    v = read_adc(0, A0); putv(v); delay(1);break;

    case 2:

    Menu(12);while (1) {}} break;
    }}}



    < Bu mesaj bu kişi tarafından değiştirildi berk263 -- 27 Kasım 2017; 18:55:34 >




  • Arkadaşlar yardımlarınızı bekliyorum
  • Detaylı şekilde inceleyemedim ama eeproma yazarken yazdığın verinin üstüne tekrar yazıyorsun gibi geldi çünkü adres hesaplamaların hatalı görünüyor.

    Ben olayın mantığını anlatayım, sen kendin çözersin.

    https://www.arduino.cc/en/Reference/EEPROMPut

    Burada yazdığına göre EEPROM.put() ın ilk parametresi adres, ikinci parametresi ise eeproma yazılacak nesne. Bu nesne her türlü uzunlukta olabilir. Adres ise 0'dan başlıyor ve eeprom boyutuna kadar gidiyor. Diyelim eeprom 512 byte ise adres 0-511 arasıdır. Bir veri yazdığın zaman adresi verinin uzunluğu kadar arttıracaksın, 1 değil! Eğer nesnenin kaç byte kapladığından emin değilsen sizeof() operatörünü kullanabilirsin. Örnek olarak eepromun en başından itibaren birkaç nesne yazdıralım. Tabi okurken de aynı şekilde yapacaksın.

    unsigned int adres = 0;
    byte a;
    float b;
    int c;
    ...

    EEPROM.put(adres, a); // adres = 0
    adres += sizeof(a);
    EEPROM.put(adres, b); // adres = 1
    adres += sizeof(b);
    EEPROM.put(adres, c); // adres = 5




  • Arkadaşlar yokmu el atabilecek bir arkadaşım.Sadece EEPROM.PUT vede EEPROM.GET kısmını öneriniz üzere yazmanızda yeterli olacak
  • 
Sayfa: önceki 12
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.