29 Nisan 2010 Perşembe

assembly(pic 16f877a) programlama'da ardışık adreslere veri yazma

şöyle bir problemimiz var:20h  adresinden başlayarak 24h'e kadar   sırasıyla 11h,22h,33h,44h,55h adreslerini yazma,indirect adressing kullanacaz:
11h,22h,33h,44h,55h verilerini sırasıyla 20hdan başlayarak 24he kadar olan adreslere yaz


list p=16F877A                                   ;her  programın başında  yazılmalı

include "p16F877A.inc"                             ;her programın başında yazılmalı

movlw 0x20

movwf FSR              ;fsrnin içine  20hex i attım

movlw 0x11

movwf INDF               ;  11h'i 20 hex adresine yazdım

incf FSR                 ;fsrnin içini  1 arttır  yani 21hex adresine gel

movlw 0x22

movwf INDF          ;22 h'i 21 hex adresine yazdım


incf FSR                ;fsrnin içini 1 arttır yani 22hex adresine gel



movlw 0x33

movwf INDF            ;33 hexi 22 hex adresine yazdım

incf FSR                    ;fsrnin içini 1 arttır yani 23hex adresine gel



movlw 0x44

movwf INDF           ;44 hex verisini  23 hexdresine yazdım

incf FSR                    ;fsrnin içini 1 arttır yani 24hex adresine gel



movlw 0x55

movwf INDF         ;55  hex verisini  24 hex adresine yaz

end                         ;programı sonlandır


DERYA GÜNDÜZ

assembly(pic 16f877a) programlama'da adresleme çeşitleri

assembly programlama'da  3 çeşit adresleme vardır
  • immidiate adressing
  • direct adressing
  • indirect adressing
immidiate adressing:bu adresleme  türünde working egisterın içine doğrudan değişken atanabilir veya içeriğinde değişiklik yapılabilir,bu adresleme sadece  working reg ile ilgili adres atamalarında kullanılır, çünkü  başka  bir  adrese veri atacaksak mutlaka onu önce  working registera  ordan başka bir yere aktarmamız  gerekir.
movlw 0x20;working registerın içine 20hex verisini atmış olduk
sublw 0x10;istersek bu atılan veride  değişiklik de yapabiliriz

direct adressing:bu adresleme program yazarken en sık kullanılan adresleme  türüdür,bu adresleme  türünde bir veriyi  bir adrese yazmak isterken onu önce  working reg'e  taşırız,ondan da  istediğimiz yere.
movf    0x50,w             ;50 hex verisini  working  reg'e atıyorum
movwf     0x20;              ;working reg'in içindekini, yani 50hex verisini  20hex adresine atıyorum
  böylece  veriyi istediğim bir adrese atmış oluyorum.

indirect adressing:dolaylı adresleme  diğer adresleme  türlerine  göre biraz daha karışk ve hata oranı daha fazladır.bu adresleme  türünde veri yazmak istediğimiz adresi  başka bir registerın içine yazıyoruz,bu exra  registera yazdığımız adrese de  başka bir  register yardımıyla veri  yazarız.

bu adresleme türünde yardımcı olarak kullandığımız iki extra  register vardır:fsr ve indf registerları.
fsr  register:veri aktarmak istediğimiz  adresin taşındığı registerdır.
indf  register:fsrnin  adreslediği yere karşılık geliyor,ram bellekte adresi buluna  fiziksel bir register değildir.
indf registerını kullanan bir komut  geldiğinde fsr'nin  gösterdiği registerın içindeki veriye ulaşmak için kullanılır.
şimdi indirect  adresleme  yolu ile   0x20 verisini  0x50 adresine atalım:

movlw  0x50         ;w rege  50 adresini attım
movwf  fsr            ;w regindeki 50 hex adresini fsrnin içine   attım
movlw  0x20         ;w regine  20 hex verisini attım
movwf   indf          ;workingdeki  20 hex verisini  indf'nin  içine attım,yani  fsr'nin  tuttuğu 50 hex adresine  20
                             ;hex verisini yazmış oldum


neden indirect adresleme kullanma  gereği  duyarız??? 
 indirect  adresleme  türünü daha  çok ardıiık adreslerde işlem yapmak için  kullanırız,
incf  fsr     diyerk  bir sonraki adrese  kolaylıkla  geçmiş olruz.

DERYA GÜNDÜZ

23 Nisan 2010 Cuma

DUYURU!!!!!





arkadaşlar esogü bilgisayar  mühendisliği olarak google group oluşturduk,bölümdeki bütün arkadaşlar üye olsun,bölümümüz içi  iletişim ve  duyuruları  bu grubumuzdan takip edebilirz..........
linki  burda,gruba girip üye olabilirsiniz:

http://groups.google.com/group/esogu_ceng

DERYA GÜNDÜZ

assembly programlama/iki adresteki verinin yer değiştirmesi

iki tane  registerımız olsun;
reg1
reg2
reg1 ve reg2nin içindeki verileri değiştirmek istiyorum.
assembly  programlamada essas olarak bir veriyi bir adrese taşıma istiyorsam o veriyi önce  working registera orda istenilen adrese taşımalıyım,iki registerın içini yer değiştirmek istiyorsam da hem working reg hem arada geçici kullanacağım bi reg kullanmalıyım,bu reg temp olsun.
değiştirme kodlar;:


  movf reg1,w           ;reg1in içini w rege  at
  movwf temp             ;wnin içeriğini  tempe at
  movf reg2,w       ;reg2yi w ye at
 movwf reg1         ;wnin içinde  reg2 vardı bunu  reg1e atıyorum
movf temp,w     ;tempin içini wye atıyorum,içinde reg1(içeriği) vardı
movwf reg2       ;wnin içini  yani tempten gelen reg1i de  reg2 ye attım

böylece temp geçici registrı ve  working registerı sayesinde reg1 ve reg2nin içini değştirmiş olduk
DERYA GÜNDÜZ

22 Nisan 2010 Perşembe

uzun zamandır yazamıyorum

ne kötüdür ki yazmak istiyorum ama yazamıyorum,yazmak istediğim çok şey var aslında ama  maalesef zaman  bulamıyorum,çalışırken ya da  yeni bişey öğrendiğimde hep diyorum ki bunu da yaarım blogum ama izim yok,okdar yoğun geçiyor ki,vizeler geliyor yine,vizeler yetmiyormuş gibi bi de quiz haftası yaptılar başımıza,bu hafta  3  quizim var,yrn da assembly var,çok uykum var ama  yatamıyorum,çünkü daha çalışmam gerkiyor,
bazen diyorum ki nerden geldim bu bölüme........çok zor gerçekten adaman  gerekiyor kendini,okuldan bu kadar kasmasalar  gereksiz yere,bişeyler yapacaz da ama  abartıyorlar  gerçekten:(
kendimi  bloguma karşı  sorumlu hissettiğimden  bikaç  cümle yazma  zorunluluğu hissettim özür mahiyetinde,


DERYA GÜNDÜZ

12 Nisan 2010 Pazartesi

c#'da hata oluşturup bi yerde çağırmak(catch'de olduğu gib)

bilindiği gibi c#da try-catch olayı vardır;hata olmadığı durumlarda try,hata olduğu zaman  catch çalışır.
peki kendimiz bir hata oluşturmak istersek?????:
  • 1. yol:
//exception sınıfından oluşturulan hata

Exception hata = new Exception("Bu benim hatam");

//oluşan hatayı nesnenin hata mimarisi içine fırlatma.

throw hata;//burda hata verir
//program throw kısmına gelince hata verir ve hata ekranında "bu benim hatam",yazar
  • 2.yol:class kullanarak yapalım
class KendiHatamiz : Exception


{
public KendiHatamiz()

: base("derya'nın hatası")

{}
}
int main()
{
KendiHatamiz kndHata = new KendiHatamiz();

throw kndHata;//burda da hata verir
//throw'a geldiğinde program durur ve hata alanında "derya'nın hatası ",yazar.
}

DERYA GÜNDÜZ

11 Nisan 2010 Pazar

c#da property kavramı

c#da classın içine yazdığımız değişkenler için get ve set değerlerinin beraber kullanıldığı  formatına property deniyor.

class sınıf

{
public int yas;
private string öğrenciadı;

private string ad
{

get { return öğrenciadı; }

set { öğrenciadı = value; }
}
public int Yas
{

get
{return yas;}
set
{if (value >= 0)

yas = value;}
}
{
public void Yaz()
{
Console.WriteLine( öğrenciadı+ "  " + yas);
}
static void Main(string[] args){

sınıf f = new sınıf();

f.yas=22;

f.öğrenciadı="derya";
f.yaz();
}}


OUTPUT
derya 22
  • property tanımlamasında parantez kullanılmaz
  • get bloğu değişkenin değerinin okunması sırasında hangi değerin döndürülecegini belirtir. bu nedenle içerisinde return kullanılmalıdır.
  • set bloğu değişkene değer atanırken çalışacak olan kodu belirtir.
  • value anahtar kelimesi ise değişkene o sırada atanmak istenen değeri temsil eder.
  • get veya set blokları en az biri property içerisinde bulunacak şekilde herhengi bir kombinasyonda kullanılabilirler. ancak belirtilen formatı izlemelidir.
DERYA GÜNDÜZ

9 Nisan 2010 Cuma

LİNUX GÜNLERİ-1. gün/DEVRİM GÜNDÜZ

bugün yine "aa bugün nekadar çok şey  öğrendim",dediğim günlerden birtanesi:
klübümüz BBTK'nın etkinliği olarak gerçekleşen "LİNUX GÜNLERİ" etkinliğine   katıldım bugün.İyiki de katılmışım dediğim bir seminerdi.
LKD(linux kullanıcıları derneği) adına DEVRİM GÜNDÜZ konuşmacı olarak katıldı.
Devrim gündüz kimdir?
kendisi  şuan markafoni adlı özel alışveriş klübünün IT departmanında çalışıyor,50 ay Canada'da çalışmış,Amerika'da çalışmış ayrıca postgresql'in (özgür yazılım olan ve sql standart sorgu dilini destekleyen veritabanı yönetim sistemi)  geliştiricisidir ve koyu bir linuxçu'dur.
sunumu müthişti,gözlerimizi ondan alamadık,1.5 saat  geçiyordu ama kimse  zamanın nasıl geçtiğinin farkında olmuyordu,kendi hayatından ve tecrübelerinden anektodlar alarak sunusunu çok eğlenceli bir hale getirmeyi başardı.sunum iki  oturumdan oluşuyordu:
  • özgür yazılım, linux nedir?
  • linuxta sunucu,veritabanı ve ağ sistemleri
daha önce de özgür yazılımla ilgili konferanslara katılmıştım ama hiçbirinden bukadar zevk almamıştım(çoğunlukla pardüs seminerleri).
şimdi oturumlar boyunca ladığım notları sizlerle paylaşmak istiyorum:
  • linuxun en önemli özelliği tüm bileşenlerin kaynak kodlarının kamuya açık olmasıdır,
  • linux esasen işletim sisteminin çekirdeğidir,yani biz "linux kullanıyorum",derken aslında yanlış kullanıyormuşuz;ubuntu,pardüs,fedora... kullanıyorum demeliyiz,bunlar da linuxun dağıtımlarıdır,
  • 1991'de linuxun ilk sürümü duyruluyor,linux 0.02,sonrasında 0.04,0.06....1.0,.....2.0......2.6 çıkmış ,
  • minix ve linus torvals linux çekirdekli çok basit işletim sitemleridir,
  • linuxta kullanıcıların akıllı olduğu düşünülür,örneğin birşey  silinecekse windowsta olduğu gibi "emin misiniz",sonra  geri  dönüşüm kutusuna,  gibi şeyler  yokmuş,
  • pidgin:aynı anda yahoo,msn,,,'den birden fazla oturum açmak için kullanılan prog,
  • linux'ta dil paketlerinin hepsi yüklüymüş,böylece istediğiniz dili kullanabiliyormuşsunuz,
  • mono:c#'da kod yazmak için kullanılan prog.,
  • evolution,pine:mail okumak için prog.,
  • programlama için eclipse,anjuta,glade  programları kullanılabiliyormuş,
  • çokluortam için mplayer,grid kullanılabiliyormuş,
  • .net uygulamalarını mono ile çalıştırabilirmişiz,
bugün için aldığım notlar buşekildeydi,katılmayan arkadaşlar bi göz atabilir,
buarada katılmayan demişken,katılım çok azdı,insanları anlayamıyorum böyle fırsatları nasıl kaçırabiliyorlar,etkinlik yapıyoruz zahmet edip gelmiyorlar,bilinçsiz okadar çok insan var ki.........


bir de benim için çok önemli olan bir konudan da bahsetmek istiyorum,uzun zamandır bilgisayarıma ubuntu kurmayı düşünüyordum,ama  bir türlü cesaret edip kuramamıştım.zaten şuan için windowsun yanına kuracam,takdir edersiniz ki windowstan vazgeçilmez(şuan için öyle düşünüyorum tabi ki belki de ubuntu kullandıktan sonra fikrim değişir),yrn kesin olarak kuracam,özgür yazılıma ilk adımları atacam........



                                 işte  bugünden hatıra kalan  güzel bir kare..........





DERYA GÜNDÜZ

6 Nisan 2010 Salı

DUYURU!!!!!

arkadaşlar,robocup yarışması ile ilgili çalışmalarımızın takibi ve haberleşmek için bir google group oluşturdum,ilgili arkadaşlar buna dahil olsun,ya da bana mail atsınlar ben ekliyeyim
   burdan üye olabilirsiniz    
 
DERYA GÜNDÜZ

DUYURU!!!!! readmee nisan sayısı çıktı

elektronik dergimiz readmee'nin nisan sayısı çıktı,ilgili arkadaşlara duyrulur,keyifli okumalar...........


DERYA GÜNDÜZ

READMEE 1 YAŞINDA!!!!!!!



Klübümüz bbtk'nın aylık sanal dergisi olan READMEE   1 yaşına girdi,geçtiğimiz günlerde readmee ekibi olarak 1. yaş gününü kutladık,hocalarımızı da davet etmiştik,keyifli bir kulamaydı,böyle başarılı bir derginin yazar ekibinde olmak mutluluk verici,nice 1 yıllara READMEE daimi olması dileğiyle...........................




READMEE ekibi ve hocalarımızla mutlu,güzel bir kare!!

DERYA GÜNDÜZ

HAYDİ LİNUX ÖĞRENELİM!!!!!

BBTK OLARAK ETKİNLİĞİMİZ VAR,KATILIMLARINIZI BEKLİYORUZ
etkinlik adı:LİNUX GÜNLERİ
yer:FEN EDEBİYAT KAKÜLTESİ F5 KONFERANS SALONU
tarih:9-10 NİSAN
konuşmacılar:DEVRİM GÜNDÜZ-ENVER ALTIN


DERYA GÜNDÜZ

3 Nisan 2010 Cumartesi

dergiye yazdığım yazı/OPenID

İnternette hangi siteye girsek,üyelik istiyor;kayıt yaptır,kullanıcı adı olmadı başka kullanıcı adı bul,e-mail adresine onaylama gelsin oradan gir,her site için farklı kullanıcı adı farklı şifre,hangi şifre hangisinindi……daha bir sürü problem.Bu tür işler çoğu zaman canımızı sıkıyor, işte tam bu noktada openID kavramı doğuyor,



Peki nedir bu openID?

openID, farklı sitelerin hepsi için tek bir kullanıcı adı ve şifreye sahip olmanızı ve bu kullanıcı adı- şifre ile bütün sitelere girebilmenizi sağlayan bir sistemdir. OpenID sayesinde bir siteye girdikten sonra openID destekleyen diğer bütün siteler için tek profilin oluyor , bütün siteler birbiriyle bağlantı kurup bilgilerini çekiyorlar böylece diğer sitelere de ayrı giriş yapmaksızın erişmiş oluyorsun ;her defasında farklı kullanıcı adı ve şifre bulmaktan,onları karıştırmaktan,üye olmak için geçen süre gibi problemleri en aza indirmiş oluyorsunuz. OpenID servis sağlayıcısı seçerek ihtiyaçlarınızı en iyi ve en önemlisi en güvenli şekilde karşılamış olursunuz. OpenID teknolojisi özel ya da paralı değildir, tamamen ücretsiz olması çok önemli bir özelliğidir.

Nasıl openID edinebilirm?

openID edinebilmek için bu sitelerden birine üye olmak yeterli:
ClaimID, MyID, MyOpenId, VerySignLabs, MyVidoop


Nasıl kullanılır?

1. Bir OpenID servis sağlayıcısı kullanabilir ve size kendi alan adından sağladığı adresi kullanabilirsiniz . Örneğin ClaimID’den alınmış bir openid http://www.openid.claimid.com/kullaniciadi şeklinde oluyor.bundan sonra bu adresi kullanarak işlemlerinizi gerçekleştirebilirsiniz.

2. Kendi OpenID sunucunuzu kendi alan adınızla çalıştırabilirsiniz (örn. benimadim.com)

3. Kendi siteniz kimliğiniz olabilir. Bir OpenID servis sağlayıcısını kendi sitenize yönlendirebilir, böylece sonra servis sağlayıcınızı değiştirseniz bile her zaman kendi sitenizin adresini kullanabilirsiniz.

• “Use your own URL as your OpenID” bölümü var.

• Giriş yapıyoruz ve bize bazı kodlar üretiyor.

• Oradaki kodları kendi sitemizde içine koyuyoruz.

• Ve artık kendi siteniz OpenID için sizin OpenID adresinize yönlendirildi.

OpenID Potansiyeli:

OpenID web 2.0 uygulamasıdır.Günümüz itibari ile çok yaygın olmasa da gittikçe popülerleşen bir yapıdır.Microsoft,Sun, Novell gibi büyük organizasyonlar OpenID kullanıcılarını kabul etmeye ve şart koşmaya başlıyorlar.Bugün yaklaşık 160 milyon openID kullanıcısı ve 10 bin openID destekleyen site mevcut durumda.

En çok kullanılan sitelerden OpenID desteği sağlayanlar:

Yahoo yaklaşık 250 milyon kullancısı için OpenID sisteminin hazır olduğunu açıkladı. . Google da Blogger üzerinde OpenID desteğini başlatmış,ayrıca twitter da openid desteği sağlıyor.

DERYA GÜNDÜZ

2 Nisan 2010 Cuma

string ile char arasındaki fark

genelde "string" ve "char" birbirine karıştırılır aradaki fark anlaşılamaz.

char:tek bir karakterdir

string:karakter dizisidir

char d='g';//diye kullanılır

string d="derya";//diye kullanılır

aynı şeyi hem string hem char ile de yazabiliriz:

char d[]={'d','e','r','y','a'} =     string d ="derya"

ekrana yazdırılırken de :

printf("%s",d);    =     printf("%c",d);

şeklinde yazdırılır..............................


DERYA GÜNDÜZ
 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri