Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: engineer42 - 22 Mart 2014, 21:01:36

Başlık: kendi kütüphanemizi oluşturma
Gönderen: engineer42 - 22 Mart 2014, 21:01:36
iyi akşamlar herkese..

stm32f103 için kendi kütüphanelerimi yazmak istiyorum. işlemcinin tüm registerlarına istediğim gibi erişmek istiyorum.. bazı struct-unionlar filan oluşturdum internette rastladığım örneklerden gördüğüm kadarı ile. ama oluşturduğum bu yapılara başka bi fonksiyon içinde erişmem lazım.. herşeyi adım adım kontrol ettim ama yapamadım.. değerli üstadların görüşünü almak istiyorum...


struct
{

unsigned HSION:1;
unsigned HSIRDY:1;
unsigned RESERVED:1;
unsigned HSITRIM:5;
unsigned HSICAL:8;
unsigned HSEON:1;
unsigned HSERDY:1;
unsigned HSEBYP:1;
unsigned CSSON:1;
unsigned RESERVED2:4;
unsigned PLLON:1;
unsigned PLLRDY:1;
unsigned PLL2ON:1;
unsigned PLL2RDY:1;
unsigned PLL3ON:1;
unsigned PLL3RDY:1;
unsigned RESERVED1:2;
} Bits;
}_RCC_CR;


bunlar clock.h içindeki yapılar. bunlara init.cpp içerisinde erişmek istiyorum
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: elektronart - 22 Mart 2014, 23:15:16
header dosyası içinde

#ifndef HEADER_H
#define HEADER_H

(header)

#endif

kullanıyor musunuz?
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: engineer42 - 22 Mart 2014, 23:31:09
evet kullanıyorum.. sorunum init.cpp içinde fonksiyonda mesela RCC_CR-> yaptığımda hata almam.. bu şekilde yaparak register da bitleri kontrol etmek istiyorum.
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: Erhan YILMAZ - 24 Mart 2014, 00:28:46
ST'nin kendi kütüphaneleri bu şekilde zaten çok güzel oturtmuş adamlar niye kendin yapmak istiyorsun? İllede yapıcam diyorsan onları incelemeni tavsiye ederim. Tüm yapıları tanımlamış kütüphane dosyalarıyla sonra o yapılardan pointer tanımlamış. Pointerlara da adres olarak ilgili birimin(reference manuelde yazar) base adresini vermiş sonrasında -> ile istediği gibi kullanmış.
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: CLR - 24 Mart 2014, 11:09:49
Alıntı yapılan: Erhan YILMAZ - 24 Mart 2014, 00:28:46
ST'nin kendi kütüphaneleri bu şekilde zaten çok güzel oturtmuş adamlar niye kendin yapmak istiyorsun? İllede yapıcam diyorsan onları incelemeni tavsiye ederim. Tüm yapıları tanımlamış kütüphane dosyalarıyla sonra o yapılardan pointer tanımlamış. Pointerlara da adres olarak ilgili birimin(reference manuelde yazar) base adresini vermiş sonrasında -> ile istediği gibi kullanmış.

ST kütüphanesinde bitbanding yok, o nedenle bit bazında erişim bitbanding için önemli. Gerçi bununda değişiklik yolları var.

@engineer42
Aşağıdaki yazıyı ben yazdım, bu programdan faydalanabilirsin ama struct'ları bitbanding yaparsan o zaman mükemmel olur, ST lib'iylede mix kullanırsın
kritik yerlerde bitbanding içeren struct'ları , kritik olmayan yerlerde ST lib'in bit set ve reset'ini kullanırsın.

http://www.mcu-turkey.com/stm32f103-ozel-register-kullanimi-ve-systick/ (http://www.mcu-turkey.com/stm32f103-ozel-register-kullanimi-ve-systick/)

Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: Erhan YILMAZ - 24 Mart 2014, 14:41:21
Bitbandinge gerekte yok.
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: CLR - 24 Mart 2014, 15:59:13
Hiç kullanmıyorsan sana gerek yok ama bence çok önemli bir özellik. Zaten çok önemli olmasaydı arm core içine koymazdı.
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: engineer42 - 24 Mart 2014, 21:09:19
@CLR hocam tam istediğim şey bu aslında. yazıya devam etmeyi düşünüyor musunuz?
Başlık: Ynt: kendi kütüphanemizi oluşturma
Gönderen: Erhan YILMAZ - 24 Mart 2014, 22:35:10
CLR falan nicki görünce çıkarmadım hocam. Siz diyorsanız doğrudur. Saygılar.