Selam. ARM öğrenme konusunda halen ciddiyim. İleride bu çekirdekli MCU ların işlerimi göreceğini düşünüyorum. Görünüşe göre Basic dünyası ARM a hazır değil. Bu işi Az bildiğim C ve Hiç bilmediğim KEIL ile yapıcam.
Bu 3 bileşen Ya az yada hiç bilmediğim şeyler olduğundan bu MCU ları bi türlü sevemedim. Şu an port yönlendirmesini bile beceremiyorum. Ufak ufak led yakıp söndüren, Karaşimşek, 7 segment display, Monochrome karakter LCD , GLCD tarzında hızlanıp gitmeyi düşünüyorum. Eski küçük programlarınızı benimle paylaşırsanız çok sevinirim.
Not: LPC serisi ile çalışmak istiyorum
Aleyküm selam
Elimde başlangıçta peyder pey yaptığım bir kaç çalışma var 2 uygulamayı Mehmet=M_B yapmıştı... LPC2103 led yakma, LCD yazı projesi, Arm hakkında bir kaç bilgi
http://hotfile.com/dl/111541402/c2d80ae/Desktop.rar.html
not: ARM başlığında bir kaç arkadaşımın verdiği bilgiler projelerde vardır...
Faydası olsun
sağolasın Aykut. Verdiğin programı indirdim fakat açamadım. Keil şu hatayı vermekte
[IMG]http://img405.imageshack.us/img405/1120/adszyiv.png[/img] (http://img405.imageshack.us/i/adszyiv.png/)
En başta keil hakkında birz bilgi sahibi olsam daha iyi olacak gibi.
Türkçe olarak aşağıdaki kaynak başlangıç ve ilerisi için çok başarılı. Eğer okuyorsa yazarına buradan teşekkürlerimi sunarım.
http://www.barissamanci.net/AnaKategori/3/ekitaplarim/
(http://www.barissamanci.net/resimler/LPC2000_kapak.png)
Alıntı Yap"Bu kitapta LPC2000 ARM7 işlemcileri üzerine aldığım notların toparlanmış halini bulacaksınız.Başlıklar uzun zaman aralığında farklı zamanlarda yazıldığından, farklı bölümler arasında konu anlatımı bakımından farklılıklar olabilir.Kaynak olarak Hitex firmasının kitaplarını ve NXP işlemci datasheetlerini kullandım. Bu kitabın herhangi bir resmiyeti yoktur, tamamen toparlanmış ders notlarından ve çevirilerden oluşmaktadır. Kitapta anlatılanlar ve verilen örnek programların kullanımı tamamen okuyan kullanıcının sorumluluğundadır. Örnek olarak verilen programların büyük bir çoğunluğu Keil uVision IDE sinde simüle edilmiştir.Aksi belirtilmedikçe anlatımlar LPC2104 işlemcisi için yapılmıştır. Kitapta kullandığım işlemciler LPC2101, LPC2104, LPC2148 ve LPC2368 dir.
Yabancı olarak
Hitex'in Kitapları
http://www.hitex.com
http://www.hitex.com/fileadmin/pdf/insiders-guides/lpc/lpc-arm-book_rev10-screen.pdf
http://www.hitex.com/fileadmin/pdf/insiders-guides/lpc2300/lpc2300_book_v2_srn.pdf
istersen şöyle @Barışsamancı kitabında keil ile adım adım proje oluşturma derleme ve proje ayarları yapılmakta ordan bakarak sıfırdan bir dene istersen o hata daha önce bende vermedi.Ben başka arkadaşlarımıda ayrnı projeleri verdim direk açtı ve derlemede sorun yoktu....
Birde keil full için crack(lisans)yap daha iyi olur....
Ben @Barışsamancı kitabını prin ettim öyle çalışmayı düşünüyaorum ama şu işler tüm vaktimi çalıyor. Kesinlikle ilk önce @Barışsamancı kitabını tavsiye ederim.
Sana C'yi ve ARM'yi öğrendiğim iki kitap veriyorum. İkisi de bulabileceğin en sağlam kitaplar. Altın değerinde kaynaklar. C ve Sistem Programcıları derneğine ait C kitabı ve Barıs Samancı'nın ARM kitabı.
http://hotfile.com/dl/111600764/10ffe16/ARM.rar.html
C için şifre isteyecektir. Şifre; cdernek
Sanırım benim ya keil imin lisansı yada proje oluşturma ile ilgili bir sıkıntım var. Kullandığım program Keil uVision4.10 ve License kısmında birşeyler var ama lisanslımı değilmi olduğunu çözemedim. Sizin sorunsuz kullandığınız keil i indirebileceğim bir yer yada sizinkini upload ederseniz yanlış bir derleyici ile vakit kaybetmem diye düşünüyorum.
Haa Dip not olarak şuda varki example klasöründeki örnek programları çok iyi açıp, derliyor. Yeni oluşturduğum ve dışarıdan edindiğim programları açma sıkıntısı var..
Barış Samancının kitabına gelince, kitabı geçtiğimiz yaz fotokopiciden bastırtıp,cilt haline getirtmiştim. Gerçekten çok iyi ve yararlı bir kaynak. Başıktada bahsettiğim gibi bu 3 konuyuda az bildiğimden kitabı okuduktan sonra pek ilerleme katedemedim. Çünkü o kadar C bilmiyordum. Şimdide bilmiyorum gerçi en azından eskisi kadar kötü değilim. Orada bahsettiği şeylerin aynısını yapıyorum yeni proje oluşturmada ama o hata hep çıkıyor.
Dediğim gibi sizin önerilerinizle Farklı bir keil indirsem bu sorunu kökten çözecek gibi. Sevgiler.
http://www.sonsivri.com/forum/index.php?topic=32457.0
keil quvison4 arm4.12 mdk full yapabilirsiniz...
linkteki 200mb program keil quvison4 bu sadece bizim derleme yapmamız için gerekli program
diğeri ise keil arm mdk4.12 library bunda ise stm32.aducxxx ve diğer arm modelleri için kütüphane dosyaları vardır...Sağlıklı kullanım için bunlarıda yükleyin.
son link ise crack(keygen) bununla 2030 ağustos ayına kadar full ve sınırsız kod limitsiz kullanın....
ALINTIDIR....
32 bit için karaşimşek
#include <LPC2103.h>
unsigned long long adres;
void gecikme(void) {
unsigned int j;
for (j = 0; j < 140000; j++ );
}
int main(void) {
IODIR = 0xffffffff; // Butun portlar CIKIS
IOCLR = 0xffffffff; // Butun portlar SIFIRLANIR
while(1) {
for (adres=1;adres < 0x100000000;adres<<=1) {
IOSET = adres;
gecikme();
IOCLR = adres;
gecikme();
}
for (adres=0x100000000;adres > 0x1;adres>>=1) {
IOSET = adres;
gecikme();
IOCLR = adres;
gecikme();
}
}
}
hocam tecrübenizden bizleride istifade edin :)
Programın çalışmasında derleme işlemlerinde sıkıntı yok
Teşekkür ederim Aykut. Programı indirdim, kurdum fakat lisanslanmasını beceremedim ama olsun. Şimdilik 32k lık alanda benim için yeterli. (Full olsa iyi olur tabiki) Verdiğin örnek kodları derledim, değiştirdim, üzerinde oynamalar yaptım. Şu anlık Keil in full olmaması dışında bi sıkıntım yok. Fakat size sorularım var.
1- #include <LPC2103.h> tarzı dosyaları programın en başına include ediyoruz. Picler için delay.h vb şeylerde ekliyorduk mesela. ARM lar da daha farklı eklemem gereken include dosyaları varmıdır ?
2- Anladığım adarıyla IODIR portların girişmi çıkışmı olduğunu tayin etmekte ve 1 yaptığım bit çıkış olmakta 0 larda giriş.. IOCLR portları temizleme için kullanıyor. yine 1 yaptığım bitler Temizlenip lojik 0 oluyor.IOSET ise 1 yapılan biti lojik 1 yapmakta. Peki mesela ben 74595 ten Seri data göndericem. 3 ucum var ve bunu yazılımsal olarak yapıcam. Donanım kullanmıyacam. Piclerdeki gibi Porta.0=1; gibi kolay bir yol varmıdır ARM lerde.
Şimdilik sorularım bukadar. Bunlarıda çözünce yeni sorularım olacak. Sevgiler.
1. Bahsettiğin durum ARM7 için geçerli değil (yanlışda biliyor olabilirim) bu yüzden gecikmeler genelde bir for döngüsü ile sağlanıyor. İstersen delay_ms delay_us isimlerinde fonksiyonlar oluşturup kendi delay küpüthaneni oluşturabilirsin. Bahsettiğin durum Cortexlerde geçerli CMSIS denilen bir olay var. Bluetooth SD/MMC gibi donanımlara ait kütüphane dosyaları mevcut.
2. ARM de direk pinler üzerinde işlem yapamazsın maskeleme denilen bir olay vardır. Mesela 1. pine bağlı butonu kontrol etmek için if(IOPIN0&0x00000001) yazarsın. Burada 0x00000001 olarak verdiğin bit numarasını IOPIN içerisinde ki değerle bitsel ve işlemine tabi tutarsın pin durumu 1 ise if mantıksal olarak doğrunır ve işlemler uygulanır. Ben yine bir shift register olan 4094 ile yaptığım programdan örnek vereyim sana;
#define data_set IOSET0=0x00000001
#define data_clr IOCLR0=0x00000001
#define stb_set IOSET0=0x00000002
#define stb_clr IOCLR0=0x00000002
#define clk_set IOSET0=0x00000004
#define clk_clr IOCLR0=0x00000004
Yukarıdaki şekilde entegre pinlerini giriş ve çıkış olarak yönlendirecek komutları tanımladım. Sonra bir for döngüsü kurdum ve çıkış vermek istediğim sayıyı bit bit gönderdim. Gönderirkende kontrol ettiğim bit değeri 1 ise data_set; dedim 0 ise data_clr dedim. Her bit göndörmemde de bir clock uyguladım "clk_set; clk_clr;"
Anlatabildim mi ?
#define led_pin 21 // P1.21
#define in_pin 31 // P1.31
#define in ((LPC_GPIO1 -> FIOPIN>>in_pin)&1)
#define led(x) ((x) ? (LPC_GPIO1->FIOSET| = (1<<led_pin): (LPC_GPIO1->FIOCLR =(1<<led_pin));
/* Kullanimi */
led(1);
led(0);
/* veya */
led(!in);
LPC Cortex M3 lerde de bu şekilde kullanılıyor arm7 yede uyarlayabilirsiniz. led i 1,0 olarak değiştirebiliyorum diğer örnektede in pini okuyup tersini led pinine yazar.
Çok sağolun. Verdiğiniz bilgiler üzerine hemen denemeler yapıcam.
Not: Soruların devamı gelecek. :)
slm arkadaşlar keil de arkadaşların paylaştıgı kodları kopyalayıp derlemek istedim fakat yapamadım. programı kopyalayıp farklı kaydet yapıp
orn.c şeklinde kaydettim fakat compiler ikonu aktif olmadıgı için derleyemedim. nereyi atlamaktayım??
@emrahGS Öncelikle project menüsünden yeni proje oluşturup kullanacağın çipi seçeceksin. Projeni oluşturduktan sonra karşına boş bir sayfa gelecek. Onu dosya_ismi.c olarak kaydedeceksin. Daha sonra kodları oraya yapıştırarak derleyebilirsin. Ancak bunun için de kullanacağın çipi #include <lpc21xx.h> şeklinde programın en üstüne dahil etmelisin.
project -- new uvision project -- ornek.c şeklinde kayıt -- işlemci seçimi LPC2103 için ARM 7 -- programı actıgım ornek dosyaya yapıstırıyorum derlemeye tıklıyorum target1 şeklinde uyarı veriyor. derleme ikonunun yanındaki seçme ikonunda target1 yazıyor başka birşey çıkmıyor ??
linktekii word belgesinde birkaç şey karaladım yardımcı olması temennisi ile.
İyi çalışmalar.
http://www.fileserve.com/file/XXDRuNw
payşastıgınız yazıların birebir aynısın yaptım fakat hex doyası oluşmuyor.
yaptıgım aşamalar ;
yeni proje olusturu sectim ornek ismini verip kaydettim
NXP den LPC2103 işlemcisini seçip onayladım şöyle bir uyarı mesajı geldi ;
" copy philips LPC2100 startup code to project folder and add file to projetc?
bu mesaja evet dedim.
yeni sayfa acıp deneme.c şeklinde kaydettim.
kaydettigim dosyayı source group1 sag tıklayarak, dosya eklemeyi sectim ve c uzantılı dosyayı ekledim.
#include <lpc210x.h>
#include "lcd.h"
void udelay(int val)
{
int d = val*69;
while(d--);
}
int main(void)
{
lcd_init();
lcd_clear();
lcd_print(" LPC2103 deneme");
while(1)
{
}
}
bu kodu kopyaladım ve kaydettim.
F7 ye bastım,
1 hata oluştu. gelen mesaj şu;
compiling deneme.c...
deneme.c(2): error: #5: cannot open source input file "lcd.h": No such file or directory
deneme.c: #include "lcd.h"
deneme.c: ^
deneme.c: deneme.c: 0 warnings, 1 error
deneme.c - 1 Error(s), 0 Warning(s).
programda hata vardır diye başka bir kodu denedim ;
compiling deneme.c...
deneme.c - 0 Error(s), 0 Warning(s).
bu meaj geldi fakat hex kodu oluşmadı.
keil demi bir sorun var acaba, yoksa atladıgım birşeylermi var ?
yok hex oluşması için project menüsünden "options for target Alt+f7" seçeneğinden çıkan pencerede "output" sekmesine gelin ve "create hex file" seçeneğini seçin. böylelikle hex dosyası oluşacaktır.
hocam lcd.h fonksiyonuna bir göz atın eğer projenize çağırmadıysanız lcd.c yi onuda ekleyin.
lcd dosyasını eklememişim. şimdi lcd.c dosyasınıda diger dosyaların yanına kopyalayıp programda ekledim fakat aynı hatayı tekrar alıyorum. lcd dosyasını açamıyorum şeklinde gelen hata.
peoje dosyasını ekle hatayı düzeltelim.
http://hotfile.com/dl/113169724/38874b3/dene.rar.html
teşekkürler yardım için..
Tam olarak proje oluşturamamışsınız IDE source kodları çağırmıyor ayrıca dosyada lcd.h diye bir dosya yok bu yüzden çalışmıyor isterseniz hazır bi kod üzerinden devam edin geçtiğimiz yıllarda ben linkdeki başlıkda lcd kodlarıda bulunan 2 uygulama paylaşmıştım uyarlarsınız kolay gelsin.
https://www.picproje.org/index.php/topic,29610.45.html
anlaşılan bilmedigim durmular var. vermş oldugunuz sayfaları incelecegim. sagolun...
arm işlemcilerin rs232 den dogrudan program atıldıgını ögrendim fakat detayı bilmiyorum? yani işlemcinin hangi pinlerine rx tx baglanacak ve program atmak için hangi editör kullanılacak. bunlar hakkında bilgisi olan açıklayabilrmi?
ilk sayfada arkadaşlar sana bir kitap önermişler Barış Samancı nın kitabı onu oku. Kitapta hangi editör ile program atabileceğini söylüyor
flash magic programını incelemenizi öneririm.
X-fi arkadaşım, beni yönlendirdiginiz sayfadan bir sonuç çıkaramadım. ugraşıpta çözemediğim konu şu;
örnek olarak bu siteden indirdigim lcd uygulamasını kendim yazıp derlemek istedim ama başaramadım. izlediğim yol şunlar ;
yeni proje olusturuyorum işlemcıyı seçiyorum ve kaydediyorum
yeni sayfa acıp, lcd için yazılmış programı kopyalayıp yeni sayfaya yapıştırıyorum ve C uzantılı kaydediyorum
kaydedtigim dosyanın yanına lcd.c dosyasınıda getiriyorum ve source group1 sag tıklayarak bu C uzantılı iki dosyayı ekliyorum
f7 ye basark derleme yaptıgım zaman lcd.c dosyasını açamadıgını söylüyor. peki ama neden? bilmedigim nokta neresi.
#include <lpc210x.h>
#include "lcd.h"
void udelay(int val)
{
int d = val*69;
while(d--);
}
int main(void)
{
lcd_init();
lcd_clear();
lcd_print(" LPC2103 deneme");
while(1)
{
}
}
kolay gelsin herkeze ....
*.c dosyası fonksiyonları oluşturmak ve işlem yapmak içindir.
*.h dosyası fonksiyon başlıklarının extern olarak dağıtılabilmesi için geçiş köprüsü olur içinde kod olmaz başlık dosyaları bulunur.
Yukardaki şartlara uyuyormusunuz bunlar anci c şartları işlemciye has bişey değil.
Bu şartlarda derleme yaptıysanızda derlemiyorsa gözden kaçırdığınız küçük şeyler vardır ve bu küçük şeyler forum ortamında tartışılarak bulunamıyacak şeyler o yüzden hazır proje bulup düzenli ve denemeli bir şekilde kod eksiltmeye giderek sağlam bir temel program elde etmenizi şiddetle tavsiye ediyorum sayın arm çılgını arkadaşlarıma :)
Alıntı yapılan: aykut54 - 24 Mart 2011, 14:28:27
http://www.sonsivri.com/forum/index.php?topic=32457.0
keil quvison4 arm4.12 mdk full yapabilirsiniz...
linkteki 200mb program keil quvison4 bu sadece bizim derleme yapmamız için gerekli program
diğeri ise keil arm mdk4.12 library bunda ise stm32.aducxxx ve diğer arm modelleri için kütüphane dosyaları vardır...Sağlıklı kullanım için bunlarıda yükleyin.
son link ise crack(keygen) bununla 2030 ağustos ayına kadar full ve sınırsız kod limitsiz kullanın....
@Aykut linkteki keygen dosyası bozuk çıktı. Lisanslayamadım. Keil uvision4 için çalışan bir kürek var mı elinde?
http://hotfile.com/dl/121861601/28782fb/cihan.rar.html]http://hotfile.com/dl/121861601/28782fb/cihan.rar.html]http://hotfile.com/dl/121861601/28782fb/cihan.rar.html (http://hotfile.com/dl/121861601/28782fb/cihan.rar.html)
Hocam çok teşekkür ederim.
Rar şifresi nedir acaba www.picproje.org denedim fakat yemedi :)
Kusura bakmayın, unutmuşum. "123456"
dosya virüs uyarısı veriyor.
Evet bende de virüs uyarısı verdi. Ona çok takmadım da W7 ile ilgili sıkıntı yaşıyorum sanırım :S
Uyumluluk modu felan denedim fakat yinede yemedi :(
Alıntı yapılan: XX_CİHAN_XX - 24 Haziran 2011, 23:10:55
Evet bende de virüs uyarısı verdi. Ona çok takmadım da W7 ile ilgili sıkıntı yaşıyorum sanırım :S
Uyumluluk modu felan denedim fakat yinede yemedi :(
W7 ultimate x86 ile kullanıyorum. Keygeni yönetici olarak çalıştırıyorum ve başka lisans var ise onu kaldırıyorum. Yaptığım başka bir şey yok.
(http://i1106.hizliresim.com/2011/6/25/306.jpg)
(http://i1106.hizliresim.com/2011/6/25/316.jpg)
keili başlatırken simgenin üzerine sağ tıklayıp yönetici olarak çalıştır seçeneğini seçmelisin
sanırım lisans kodu girerken keil bazı dosyaları değiştirmek istiyor ancak yönetici izini olmadığı için yapamıyor olabilir .
Antivirüs programı exe nin çalışmasını engelliyormuş.
Antivirüsü etksiz yaparak denedim ve oldu. Çok teşekkürler...
Merhabalar, bende ARM ve Keil e yeni başlıyorum. Tavsiye edildği içi Barış Samancı'nın kitabından başladım. Link de verilen Keil i indirdim fakat keygen " Invalid Computer ID " hatası veriyor. Ne yapmad gerekiyor? Şimdiden teşekkürler
LPC ile başlamak istediğini söylemişsin ama eğer STM32 ile başlamak istersen şu doküman oldukça işine yarar. Ben GPIO ayarlarını anlayana kadar 1 haftam geçmişti...Keşke şunu daha erken görseymişim :)
http://www.scribd.com/doc/53976388/stm32dec232009
Alıntı yapılan: eemre.09 - 26 Haziran 2011, 17:06:12
Merhabalar, bende ARM ve Keil e yeni başlıyorum. Tavsiye edildği içi Barış Samancı'nın kitabından başladım. Link de verilen Keil i indirdim fakat keygen " Invalid Computer ID " hatası veriyor. Ne yapmad gerekiyor? Şimdiden teşekkürler
File dan lisans kısmına gel orada Computer ID (CID) yazıyor oradan kopyala
Alıntı yapılan: kimlenbu - 26 Haziran 2011, 17:38:35
LPC ile başlamak istediğini söylemişsin ama eğer STM32 ile başlamak istersen şu doküman oldukça işine yarar. Ben GPIO ayarlarını anlayana kadar 1 haftam geçmişti...Keşke şunu daha erken görseymişim :)
http://www.scribd.com/doc/53976388/stm32dec232009
Şuanda ingilizce sıkıntım var orta seviyedeyim tam olarak anlayamıyorum ingilizce dökümanları onun için daha çok Türkçe dokümanları tercih ediyorum. Ama yinede bi deneyeyim. Teşekkürler
@XX_CİHAN_XX teşekkürler keygeni çalıştırdım. Fakat şuan da debug yaparken " Eror: Flash Download failed - Could not load file " hatası veriyor. Bunun için ne yapmalıyım?
Alıntı yapılan: fahri- - 24 Haziran 2011, 20:18:22
dosya virüs uyarısı veriyor.
Keygenler genellikle virüs içeriyor, en iyi ihtimal trojan downloader içeriyor. Bilgisayarınıza zarar vermeden keygen çalıştırmak için SandBoxie programını kullanabilirsiniz.
Dosyayı izole bir ortamda çalıştırıyor, sağ tuş/run sandboxed diyerek güvenli bir şekilde çalıştırabiliyorsunuz.
http://www.sandboxie.com/index.php?DownloadSandboxie
Arkadaşlar bu ARM çılgınlığı nedir anlamıyorum ? Neden ARM? PIC ile karşılaştırın demiyorum , sanki bir tutku gibi , ne bileyim birşey var bu ARM'ye başlayanlarda , ARM'deki büyü nedir? HArbiden merak ettim ....
Basit
32 Bit
Birçok Endüstiryel sistem ARM kullanıyor. Ücretsiz OS olan linux çoktan ARM desteği vermeye başladı.
Android telefonlar ARM çekirdekli yapı kullanıyor.
iPhone bile ARM çekirdeği kullanıyor
Nvidia çıkardacağı CPU için ARM çekirdeği kullanıyor.
Windows 8 ARM Çekirdeğini destekleyecek. CE yada embeded değil direk Windows'un kendisi vesaire vesaire
detay için http://www.arm.com/
şunuda ekleyeyim NXP LPC4xxxx ile çift çekirdekli MCU
Alıntı yapılan: MC_Skywalker - 27 Haziran 2011, 20:23:38
NXP LPC4xxxx ile çift çekirdekli MCU
Bu tabiri biraz daha açmak istedim. Belki merak edenler vardır.
LPC4000 serisi Cortex M4 çekirdekli bir MCU serisi ve Cortex M4 ler klasik mikrodenetleyici uygulamalarının haricine biraz daha sinyal işleme eğilimi olan MCU lar. Yani açıklamlarında DSP tarzı işlemcilerin uygulama alanlarında kullanılabileceğinden bahsediyorlar. Hatta güzel bir board bile var Cortex M4 lü;
(http://t1.gstatic.com/images?q=tbn:ANd9GcTo9Zn1Mt8fBGpdR6KjTpTNd49FXl6mLbahWap42ekpchMSSnPLJA)
http://www.pressebox.com/pressemeldungen/pls-programmierbare-logik-systeme-gmbh/boxid/418545 (http://www.pressebox.com/pressemeldungen/pls-programmierbare-logik-systeme-gmbh/boxid/418545)
peki bu arm turkıye ıcınde temın etme sansı varmı fiyatlarıda tabı
Bu kitin fiyatını tam olarak bilmiyorum ama başlangıç için tavsiye etmem. Çok ileri düzey bir donanıma sahip.
Donanımı gereği fiyatının da uygun olacağını zannetmiyorum açıkçası.
ARM a başlangıç için Cortex M3 değil de Cortex M0 daha uygun gibi..
Onun da kolay ve bedava yolu var ;)
https://www.picproje.org/index.php/topic,32114.0.html (https://www.picproje.org/index.php/topic,32114.0.html)
bana da bana da ;D
Alıntı yapılan: GreeN - 27 Haziran 2011, 18:38:44
Arkadaşlar bu ARM çılgınlığı nedir anlamıyorum ? Neden ARM? PIC ile karşılaştırın demiyorum , sanki bir tutku gibi , ne bileyim birşey var bu ARM'ye başlayanlarda , ARM'deki büyü nedir? HArbiden merak ettim ....
Bu biraz da imkanların açılmasına benziyor.
Misal 1500 TL maaş alıyodun, Geçiniyodun temel manada...
Hayalini kurdukların hayal olarak kalıyordu.
Derken benzer işi yaparak başka bi işyerinde 30.000 TL maaş alabileceğini öğrendin.
ARM da sanki bunu yapıyor...
120 Mhz Cortex m3 işlemci ile PIC16 yı yanyana koyunca....
Elbette bu bi çılgınlık :))
Alıntı yapılan: GreeN - 27 Haziran 2011, 18:38:44
Arkadaşlar bu ARM çılgınlığı nedir anlamıyorum ? Neden ARM? PIC ile karşılaştırın demiyorum , sanki bir tutku gibi , ne bileyim birşey var bu ARM'ye başlayanlarda , ARM'deki büyü nedir? HArbiden merak ettim ....
Yakin zaman icinde is icin muracat ettiginizde ARM biliyormusun diye sorulacak.
Eskiden islemci biliyormuydun denirdi sonra bu sorunun adi PIC biliyormusun oldu. Simdi de ARM biliyormusun olacak.
ARM cilginligi dalga dalga genisledikce fiyatlar daha da dusecek. Belki de 8 16 bit serisi piyasadan silinecek.
Belki ARM bilmeyene kiz bile verilmeyecek.
Alıntı yapılan: bunalmis - 02 Eylül 2011, 00:52:39
Belki ARM bilmeyene kiz bile verilmeyecek.
amann bunalmış hocam ne yaptın :-X dur ;D
Alıntı yapılan: fryrmnd - 02 Eylül 2011, 00:56:37
Alıntı yapılan: bunalmis - 02 Eylül 2011, 00:52:39
Belki ARM bilmeyene kiz bile verilmeyecek.
amann bunalmış hocam ne yaptın :-X dur ;D
"dur, ne yaptın" demeyin. bunalmis Hocam, ARM ' ın önemini çok iyi bir şekilde izah etmiş. :)
Alıntı yapılan: bunalmis - 02 Eylül 2011, 00:52:39
Belki ARM bilmeyene kiz bile verilmeyecek.
aman hocam naptın sen yaa zaten evde kaldık diyordum bide arm ı çıkartma lütfen :)
Arm ve C ogrenirseniz kismetiniz acilabilir.
çat pat C var hocam ama arm yok, kör topal buluruz en kötü :)
şaka bi yana hocam önerdiğiniz C kitabı varmıdır?
C ile cok ilgim yok. Internette C ile ilgili pek cok kaynak var.
haklısınız ama ben elimde 1kitap olsun diye sormuştum, sağolun hocam.
Alıntı yapılan: FxDev - 03 Eylül 2011, 00:15:29
Kaan Arslan - A'dan Z'ye C Programlama
teşekkür ederim hocam saolun..
Alıntı yapılan: kck87 - 03 Eylül 2011, 00:22:12
Alıntı yapılan: FxDev - 03 Eylül 2011, 00:15:29
Kaan Arslan - A'dan Z'ye C Programlama
teşekkür ederim hocam sağolun..
arayacağınız tüm kaynaklar ekteki linkte mevcuttur https://rs91cg2.rapidshare.com/#!download|91dt|53355257|C_Dili.rar|21503|R~0|0|0 (https://rs91cg2.rapidshare.com/#!download%7C91dt%7C53355257%7CC_Dili.rar%7C21503%7CR~0%7C0%7C0)
C Derneğinin hazırlamış olduğu C ders notları
pdf şifresi cdernek
http://hotfile.com/dl/85833422/8af0351/cdersi_cdernek.pdf.html kendim upload ettim.
Kaan Arslan-A dan Z ye C klavuzu 526 sayfa türkçe
http://rapidshare.com/files/53355257/C_Dili.rar.html linki test etmedim.
untumuşum birde bu var
http://web.inonu.edu.tr/~mkarakaplan/ckitabi.pdf
« Son Düzenleme: 30 Kasım 2010, 00:05:56 Gönderen: MC_Skywalker »
Alıntı yapılan: bunalmis - 02 Eylül 2011, 22:06:58
C ile cok ilgim yok. Internette C ile ilgili pek cok kaynak var.
bunalmis Hocam; avatarınıza ve yukarıdaki mesajınıza bakılırsa ARM ' ı ASM ile programlıyorsunuz galiba.
Evet, zaten avatarimdan da goruldugu gibi ARM ve ASM harfleri cok uyumlu vardir bunda bir hikmet.
Hocam; ben PIC ' leri ASM ile programlıyorum. İleride tabiki herkes gibi ARM ' a geçmek istiyorum. ARM ASM ' yi öğrenmem kolay olur mu acaba?
80x86 komutlarindan daha basit makine kodlari olamaz derdim yanilmisim. Arm komutlari daha da bir kolay.
Karnini elektronik yada yazilimdan doyuruyor yada doyuracaksan ASM den uzak dur. Elin kizina yazik.
Alıntı yapılan: bunalmis - 03 Eylül 2011, 12:43:44
80x86 komutlarindan daha basit makine kodlari olamaz derdim yanilmisim. Arm komutlari daha da bir kolay.
Karnini elektronik yada yazilimdan doyuruyor yada doyuracaksan ASM den uzak dur. Elin kizina yazik.
Hocam henüz 16 yaşındayım. :) Şimdilik hobi olarak elektronik ve yazılımla uğraşıyorum. Üniversitede mesleğim olacak inşallah. :D
Bir de 80x86 ne demek?
Alıntı yapılan: malpaslan1979 - 03 Eylül 2011, 08:32:41
arayacağınız tüm kaynaklar ekteki linkte mevcuttur https://rs91cg2.rapidshare.com/#!download|91dt|53355257|C_Dili.rar|21503|R~0|0|0 (https://rs91cg2.rapidshare.com/#!download%7C91dt%7C53355257%7CC_Dili.rar%7C21503%7CR~0%7C0%7C0)
teşekkür ederim..
Alıntı yapılan: MC_Skywalker - 03 Eylül 2011, 09:09:38
C Derneğinin hazırlamış olduğu C ders notları
pdf şifresi cdernek
http://hotfile.com/dl/85833422/8af0351/cdersi_cdernek.pdf.html kendim upload ettim.
Kaan Arslan-A dan Z ye C klavuzu 526 sayfa türkçe
http://rapidshare.com/files/53355257/C_Dili.rar.html linki test etmedim.
untumuşum birde bu var
http://web.inonu.edu.tr/~mkarakaplan/ckitabi.pdf
« Son Düzenleme: 30 Kasım 2010, 00:05:56 Gönderen: MC_Skywalker »
linkler çalışıyor sadece en sondaki çalışmıyor, teşekkürler.
80x86, 8086 tabanli islemcilerin genel adi. Yani PC de kullandigimiz islemcinin sulalesi.
Alıntı yapılan: bunalmis - 02 Eylül 2011, 00:52:39
Yakin zaman icinde is icin muracat ettiginizde ARM biliyormusun diye sorulacak.
Eskiden islemci biliyormuydun denirdi sonra bu sorunun adi PIC biliyormusun oldu. Simdi de ARM biliyormusun olacak.
ARM cilginligi dalga dalga genisledikce fiyatlar daha da dusecek. Belki de 8 16 bit serisi piyasadan silinecek.
Belki ARM bilmeyene kiz bile verilmeyecek.
Bence durum hiçte böyle değil arkadaşım. Çünkü elektronik endüstrisi beklenen işi yapacak en uygun maliyetli ürünü kullanmayı tercih ediyor her zaman. Bende işin içindeyim. Tamam kabul ediyorum, ARM gerçekten harika ve çok üstün özelliklere sahip. Ama seri üretim yapan bir firma açısından, maliyet açısından düşünüldüğünde hiçte uygun bir çözüm değil. Yani ARM bilmeyene iş yok gibi laflar bence çok boş laflar. Şu yazıyı okuyan kaç kişi gidipte nvidia ya, microsoft a vb. şirketlerde çalışacakki. Bu gibi şirketlerin destek veriyor olması güzel birşey tamam ama ARM a bu kadar rağbetin olmasını ben doğru görmüyorum. Adam C bilmiyor, mikro mimarisi bilmiyor, dijital elk. , analog elk. bilmiyor. Sen adama diyorsunki, ARM bilmeye iş yok. Yani gelecekte böyle olacak, falan filan. Bu kadar basit değil herşey benim görüşümce. ARM öğrenmek isteyen istediği gibi öğrensin. Ama elektronik piyasasında işler farklı. 0.1$ bile önemli ve tercih sebebi. Hiçbir firma 8 bitlik bir mikro ile yapacağı işi gidipte ARM la yapmaz...
Açıkçası, işin içine C girince işlemcinin de ne olduğunun da çok önemi kalmıyor.
Günümüz işlemcilerini 2 sınıfa ayırabiliriz. İkinci gruba isim vermeyeceğim ama ilk sınıfa oyuncak sınıfı işlemciler diyebiliriz. Arm sınıfı işlemciler kesinlikle ikinci grubun bir üyesi. Arm işlemci üzerinde proje geliştirebilen bir kişi, oyuncakları gözü kapalı kullanabileceğinden iş dünyasında ARM bilenler her daim tercih edilecektir.
Eğer adam C bilmiyor, mimarilerden anlamıyor, elektronikden bir haber ise, bu camiada bırakın ona kız vermeyi koca karı bile vermezler.
ve ARM işlemciler 32 bit mimarisiyle bile PIC lerden pahalı değilki maliyeti artırsın.
mbed den kopup normal kit ile NXP LPC1768 e devam ederken kit ile gelen örenek LED yaıp söndürme programında söyle birşey var neden bukadar başıt bir programda __LINE ve volatie ile tanımlama yapmış
volatile uint32_t msTicks; /* counts 1ms timeTicks */
__INLINE static void LED_Config(void)
{
LPC_GPIO2->FIODIR = 0x000000ff; /* LEDs PORT2 are Output */
LPC_GPIO0->FIODIR = 0x00200000;
LPC_GPIO0->FIOPIN |= 0x00200000;
}
Alıntı yapılan: MC_Skywalker - 13 Aralık 2011, 12:00:44
mbed den kopup normal kit ile NXP LPC1768 e devam ederken kit ile gelen örenek LED yaıp söndürme programında söyle birşey var neden bukadar başıt bir programda __LINE ve volatie ile tanımlama yapmış
volatile uint32_t msTicks; /* counts 1ms timeTicks */
__INLINE static void LED_Config(void)
{
LPC_GPIO2->FIODIR = 0x000000ff; /* LEDs PORT2 are Output */
LPC_GPIO0->FIODIR = 0x00200000;
LPC_GPIO0->FIOPIN |= 0x00200000;
}
- Okuma yapilacak butun register'lar volatile tanimlanmasi iyi olur. Cunku bunlar sizin kontrolunuz disinda donanim tarafindan degisirler.
- inline fonksiyonlarda derleyici bir altprograma gidip gelip, stack uzerinde yer tutma vb yapmaz, bu fonksiyonu cagrildigi yere ilistirir. Boylece hem hiz artar (stack manipulasyonu vs overhead olmaz) hemde call/ret vs islemleri olmaz, tek dikkat edilecek nokta, bunlar bir fonksiyon olmasina ragmen her cagrilista yeni kod ilistirildigi icin kod alani artar. Eger eyni fonksiyonu 1000 yerden caigiriyorsaniz, cok hafiza kaybedersiniz
Portları çıkış olarak ayarlamıyı anlamış oldum.
şimdi girş ten bir butona basıp led yakmayı anlamaya çalışıyorum. Örnek kodlarda şöyle birşey gördüm.
LPC_GPIO2->FIODIR |= ((1UL<< 0)|(1UL<< 1) | (1UL<< 2)|(1UL<< 3) | (1UL<< 4)|(1UL<< 5) | (1UL<< 6)|(1UL<< 7)) ; /* P2.0..7 is output (LED) */
burada 1UL ile bahsedilen FIOxDIRL (FIO1DIRL 0:15 bitleri) bit registerimi? bu kadar uzun bir işlem yapmasını anlamadım. aşağıdaki kısa kod aynı işi yapıyor.
LPC_GPIO2->FIODIR = 0x000000ff; /* LEDs PORT2 are Output */
P2[0:7] çıkış P2.11 girşi yapıp, P2.11 deki butona basılınca led yakıp söndürme yapmak istiyorum bir bazında karşılaştırma örneği bulamadım. biraz tırmalayayım. bana önce şu yukarıda ki olayı anlata bilecek biri var mı?
İkisi aynı işi yapar. Ancak alttakinde LPC_FIODIR2 |= 0x000000FF; şeklinde yazarsak daha doğru olur. Çünkü diğer yüksek bitlere müdahele etmemiş oluruz. Çünkü "|" operatörü OR(veya) işlemi olduğu için yüksek bitlerin seviyesini değiştirmemiş olur.
İlki evet biraz uzun yazım tarzı. Ancak orada hangi basamak bitilerine odaklanadığımızı daha iyi görürüz.
Yani, 1UL<<2 demek, 0x00000001 uzun tamsayısını 2 bit basamak sola ötele demektir. Böylece hedef basamak bitine bireysel ulaşmış oluruz. Her ulaşmak ve set-clear yapmak istediğimiz basamak bitleri için basamak hatasını en aza indirmek için bu yazım şeklini kullanabiliriz.
yani anladığım kadarıyla 1UL şeklinde yazmak demek 1UnsignedLong anlamına geliyor.
1ul yazmasakta derleyici kaç bit ötelemek istediğiniz değere bakarak veya yükleneceği register genişliğine bakarak otomatik olarak bunu farzeder. yaksa 1 yazsakta zaten onu 1ul kabul edecekti.
Neden bu sorunu derleyide çözmüyorlarda programcıyı böyle tanımlama yapmaya zorluyorlar.
Görünüşte derleyici hatası gibi.
Mesela keil da 1<<31 deyince kod istenildiği gibi çalışmıyo 1UL<<31 deyince çalışıyor. Bunun nedeni nedir? 1<<30 düzgün çalışıyor ama 1<<31 çalışmıyo. Keil da 32 bitli bir platform değil mi? Ben bu işlem sonucunda 32 bitlik bir sayı elde ediyorum neticede.
şu an iflas ettim. bir atır bile kod anlamıyorum. Şunu yapacak kodu bile yazamadım.
P2[0:7] çıkış P2.11 girşi yapıp, P2.11 deki butona basılınca led yakıp söndürme yapmak istiyorum bir bazında karşılaştırma.
aynı işi yapan birden fazla register olması biraz kafa karışıtırıyor.
işi sağlama alıp 1ul yazmak elbet en doğrusu.
http://hotfile.com/dl/121861601/28782fb/cihan.rar.html]http://hotfile.com/dl/121861601/28782fb/cihan.rar.html]http://hotfile.com/dl/121861601/28782fb/cihan.rar.html bu linkte sorun mu var? tıkladığımda şuna yönlendiriyor https://www.motionpictures.org/watch-it-legally/
Hotfile.com yasaklı site.
başka bir şekilde ulaşabilirmiyiz acaba ? elinde olan birisi benzer bir siteye yüklese çok makbule geçecektir.
Tahminen buradaki anlatımın çoğu HAL kütüphanesi ve CubeMX öncesiydi. HAL kütüphanesi öncesi olan az buçuk bilgim de yeni kütüphane ile birlikte yalan oldu.
Bir ara baştan bakmam lazım.
Yani diyeceğim o ki yeni bir anlatım üzerinden ilerlerseniz daha iyi olabilir.
Coşkun Taşdemir'in stm32 videoları var. Hal kütüphanesini konfigurasyon için anlatıyor. Yapılacak işleri de register seviyesinden ileri doğru anlatmış anlatım dili güzel.
https://youtube.com/playlist?list=PLmkV2uU8kdpLmB7QYE_3rGhwU1258xSbj (https://youtube.com/playlist?list=PLmkV2uU8kdpLmB7QYE_3rGhwU1258xSbj)
Alıntı yapılan: yamak - 14 Aralık 2011, 14:11:48Mesela keil da 1<<31 deyince kod istenildiği gibi çalışmıyo 1UL<<31 deyince çalışıyor. Bunun nedeni nedir? 1<<30 düzgün çalışıyor ama 1<<31 çalışmıyo. Keil da 32 bitli bir platform değil mi? Ben bu işlem sonucunda 32 bitlik bir sayı elde ediyorum neticede.
1<<31 negatif bir sayi, 1UL<<31 ise pozitif bir sayi.