Şimdi Ara

FLOAT Değişkenini EEPROM a aktarma.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
4 Misafir Kullanıcı, 4 Masaüstü Kullanıcı
27
Cevap
1
Favori
1.803
Tıklama
Tüm Forumlar >> Donanım / Hardware >> Elektronik ve Mekanik >> Arduino >> FLOAT Değişkenini EEPROM a aktarma.
Sayfaya Git:
Sayfa:
Giriş
Mesaj
  • Yarbay
    3748 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?
  • Binbaşı
    1708 Mesaj
    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.
    |
    |
    _____________________________




  • Teğmen
    103 Mesaj
    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ı >
    _____________________________
  • Er
    3 Mesaj

    Ç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 >
    |
    |
    prax kullanıcısının, bahsedilen mesajını gör
    _____________________________




  • Er
    3 Mesaj
    Arkadaşlar yardımlarınızı bekliyorum
    |
    |
    _____________________________
  • Çavuş
    40 Mesaj

    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
    |
    |
    Bahsedilenler: berk263
    _____________________________




  • Er
    3 Mesaj
    Arkadaşlar yokmu el atabilecek bir arkadaşım.Sadece EEPROM.PUT vede EEPROM.GET kısmını öneriniz üzere yazmanızda yeterli olacak
    |
    |
    _____________________________
HızlıCevap
Sayfaya Git:
Sayfa:
Reklamlar
SEO
üniversite
haberler
Canlı Tv izle
Bu sayfanın
Mobil sürümü
Mini Sürümü

BR3
0,422
1.2.165

Reklamlar
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.