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.
Ç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
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() diye bişey varmış bak her türden veriyi yazıyor. Bunu niye kullanmıyorsun?
Bu mesaja 1 cevap geldi. Cevapları Gizle