BASIC kullanıcılarını C'ye alıştırma turları

Başlatan bunalmis, 28 Ekim 2011, 18:48:32

ErsinErce

bunalmis hocam vereceğimiz adres mecburen byte adresi olacak, bu yapı PIC'de de aynı ARM'da da
RAM'de 0x02 adresinde char varsa 0x03 adresinden itibaren kullanıyoruz ama long bir yapı varsa 0x06 adresinden itibaren kullanıyoruz,
yani adresleme her zaman standart byte sayısına bağlı

char tanımlamak istersek aşağıdaki gibi kullanabiliriz, farklı tipler için sadece ön eki değiştirmek yeterli

char reg @0x8000;
char reg __attribute__((at(0x8000)));

subram

hocam merhaba konuyu daha yeni gördüm. çok güzel bir uygulama olmuş. ilk sayfasına baktım konunun zamanla tüm sayfalara bakarım. ama 2 kasımdan sonra ilerleme olmamış. devam edecek misiniz bu başlığa yoksa yeterlilik mi verdiniz?
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

z

Devam ederiz de katilim olmayinca icimden yazmak gelmiyor. Kendim calip kendim oynuyorum gibi oluyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

Hocam tekrar meraba.Hala buralardamısınız?Benim anlamadığım bir konu var.Tam olarak C dili ile mi ilgili bilmiyorum ve bu başlıkta konuşulmalımı bilmiyorum.Acaba sorsammı ? :)
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

z

@Gerbay su anki zamanı kasdetmiyordum.

@Einstein_54

ARM öğreniyoruz projesinde tüm diller eninde sonunda C'ye varacak. Amacımız zaten C idi. Sen sor sorun olmaz.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

GPIOD->ODR= 0x0000F000
bu sayı 32 bit.En soldan başlarsak bu sayı şöyle mi olur:

0x00000000000000001111000000000000 mü?
Bunun daha kolay bir yolu var mı?Yani daha farklı sayılarda kavraması zor oluyor da.

0xfdaecb0a gibi...
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

z

32 bit sayıların bit karşılıklarını görmek, yada bitlerin 32bit karşılığını bulmak için calc.exe diye bir program linki vermiştim.

Bu program örnek  programlarda elimiz ayağımız. Normalde registerlere bu şekilde hex değer atamak yerine (1<<13)|(1<<2) gibi kaydirma komutlari da kullanilabiliyor.

Fakat ben hex sayi kullanmayi tercih edıyorum. Bu yüzden de örnek programlar malesef hex formattaki sayıların atamasından oluşuyor.

İlerleyen dönemlerde alternatif yazım şekillerine alışacak hatta header dosyalardaki hazır kelimelerle daha okunaklı register değer atamaları yapabileceksiniz.

CALC.exe nin linki http://www.cncdesigner.com/STM/Calc.rar

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eistain_54

abi öğrenmek istediğim bir şey daha var ama sanırım şamatalarda sorsak daha iyi. Ama şansımi demeyeceğim. Örnek temel programlarda verdiginiz registerler varya aynı isimdeki registerin farklı donanımları harekete geçirdiğini gördüm. Pic deki options register gibimı acaba? Yani sadece registerin bit değiştirmesi yeterli oluyo diğer donanıma erişmek için. Birde bir register katologu falan hazırlasak... Çünkü veri kataloğu ıngilizce ve benim gibi bir çok kişinin ki gibi yetersiz. Gerçi register listesi orada mi acaba ?
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

z

Alıntı yapılan: eistain_54 - 24 Aralık 2011, 02:18:58
Örnek temel programlarda verdiginiz registerler varya aynı isimdeki registerin farklı donanımları harekete geçirdiğini gördüm.

Bir örnek ver mesela. Nerede farklı donanımlar harekete geçiyor?

Malesef dokumanların Türkçesi yok. Bunları tercüme edip katalog oluşturacak gönüllü çıkacağını da sanmıyorum. Bu dokümanları anlamak için vasat bir ingilizce yeterli.
Sen şimdi böyle dedin ya kafamda bir ampul yandı. İzle gör.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

subram

hafif bir dürtmek gerekiyormuş herhalde konu canlandı birden :)
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

eistain_54

Alıntı yapılan: bunalmis - 24 Aralık 2011, 02:29:26
Bir örnek ver mesela. Nerede farklı donanımlar harekete geçiyor?

Malesef dokumanların Türkçesi yok. Bunları tercüme edip katalog oluşturacak gönüllü çıkacağını da sanmıyorum. Bu dokümanları anlamak için vasat bir ingilizce yeterli.
Sen şimdi böyle dedin ya kafamda bir ampul yandı. İzle gör.
şuan telefondan bağlandığım için örnek vermem mümkün değil. Son cümlemizi okuyunca gerçekten ürkütm açıkçası. Ama açtığınız yeni konuyu görünce hem çok rahatladım hemde çok sevindim çünkü gerçekten bir şeyler yapma çabanız var. Eğer emeklerd layık olamazsam hakkımızı helal edin ne olur. Biliyorum şahsıma yapılan bir hizmet değil ama yinede düşüncelerimi belirtmek istedim. Bu arada bu mesajı silin lütfen...
GERÇEKTEN TEŞEKKÜRLER!!!
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

rree

    Basic den C geçeli 1 sene oldu.CCS kullanıyorum.
Sorum şu olacak
                                         #define Reg    *(volatileunsigned char*)0x1000
tanımı ile
                                          char reg @0x1000;
Aynımıdır.
İkiside  reg  char değişkenin  adresi 0x1000 oluyor.
Farklı bir yapımı
char reg @0x1000;   Bu tanımı anlatırmısınız.



z

Keilde daha dogrusu standart C de @ kullanimi varmi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fryrmnd

bunalmış hocam sorularınızın tartışmasını hangi başlıktan yapıyorsunuz?

z

Evet onun icin ayri bir baslik acalim. Basliklar kisa zamanda kabariyor okumasi zorlasiyor.

https://www.picproje.org/index.php/topic,36908.0.html  linkinde tartisiriz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com