pbp Yeni Başlayanların İncelemesi Gerek(surekli güncelle

Başlatan electrotechnics, 10 Şubat 2006, 03:13:11

electrotechnics

Arkadaşlar Pic Basic ile pic programlamaya bende yeni başladım.Pic programlama ile yaklaşık 4 yıldır ugraşıyorum ve bundan ekmek paramı kazanmaya çalısıyorum.
Bu sitedeki doslukları yardımsever arkadaşları görünce benimde bir katkım olsun istedim.
Aranızda yeniyim hatalarımız kusurlarımız yada eleştireceginiz bir yanımız olursa lütfen çekinmeden dile getiriniz...
(benim incelerken buldugum bazı linkleri direk veriyorum bunları hazırlayan arkadaşların ellerine kollarına sağlık)

Artık ögrendiklerimi sizinle paylaşma zamanı geldi.Burda herşeyi temelden alarak ben ögrendikçe buraya yazarak devam edecegim...

1.ilk başta pic basic dilinin derleyicisini elde etmemiz gerekiyor.Bu derleyicilerin çeşitli versiyonları mevcut. Bunlar kafanızı karıştırmasın.
benim kullandıgım
(1.
    pbp2.46  yukarda indirdiginiz dosyayı mplab yardımı ilede kullanabilirsiniz.
biz bunun için farklı görsel yüz teskil eden bir program kullanacagız...
bunun ismi:mcstudio bu programı aşagıdaki linkten elde edebilirsiniz...
2.
  mcstudio.rar
bu iki programı elde ettikten sonra.mcstudio.rar dosyasından cıkan programı bilgisayarınıza kurun.kurulum hakkında fazla bilgi sahibi değilseniz.
aşağıdaki linki ziyaret ediniz arkadaşımız çok güzel açıklamış.Genede birşey anlamadıysanız bana veya diger arkadaşlarıma istediginizi sorun eminimki alabileceginiz maksimum yardımı alırsınız.

https://www.picproje.org/index.php/topic,2289


üsteki programları ben kullanıyorum.daha farklı sürümünü indirmek isterseniz aşağıdaki linki kontrol ediniz...

https://www.picproje.org/index.php/topic,2280le=viewtopic&t=2280


kurulum işlemleriniz bittikten sonra herşeyin yolunda olup olmadıgını anlamak için küçük bir derleme işlemi gerçekleştirecegiz.
bunu için ilk önce aşağıdaki linki ziyaret ederek.Animasyonlu bu işin nasıl yapıldıgını öğreniniz.

http://members.lycos.co.uk/edadown3/bastohex.html


derlenecek kodu siz yazmaya çalışmayın aşağıdaki kod derlenmiştir ve hiç hata vermemiştir.bu kodu direk kopyala yapıştır yöntemi ile microCstudio programın beyaz sayfasına yapıştırınız.
TRISB=0
TRISA=%00000001
PORTB=0

KONTROL:
    IF PORTA.0=0 THEN YAK
    GOTO KONTROL
YAK:
    TOGGLE PORTB.2
    GOTO KONTROL
    END


derleme işleminin sonucunda hiç hata vermediyse nemutlu size eğer hata veriyorsa birkaç küçük işlemimiz daha kaldı.

1.derlediğiniz dosyanın nereye kaydedildiği derleyicimiz için önemli.derleyicimiz dos tabanlı olmasından kaynaklanıyor bu sorun.bu sorun neticesinde "16f84.inc" bulunamadı gibi bir uyarı vermektedir.
en rahatı PBP2.46 olan dosyamızın ismini "c:/PBP2.46" Yerine "c:/PBP" olarak değiştirmek ve derleyeceğimiz dosyayı PBP dizinin içine kayıt etmek.Başka bir yere kayıt yaptığımızda genellikle hata vermektedir.
2.başka hatalarlada karşılaşmıstım.Ama su anda onları hatırlamıyorum.sizin karşılaştığınız bir hata olursa burada sorunki sizin gibi diğer arkadaşlarım bu sorunla karşılaştıgında kolayca halletsin...

sıra geldi.
derslere ilk önce pic basic kodaları elinizde olmalı benim derlediğim ve baş ucumdan ayırmadığım.3 sayfa kodu sizinle paylaşmak istiyorum.yer yer bunlara ek yaptım bunları zamanı geldikçe ek olarak verecegim.

pic basic komutları

ardından ete arkadaşımın hazırladığı dersleri bulun.
bunlar forumun makale kısmında mevcut ayrıca aşağıdaki linktende indirebilirsiniz...

pbpdersleri1.rar
etenin ikinci derslerini aşağıdan indirin.Mükemmel bir kaynak hazırlamış.tekrar teşekkürü bir borç olarak görüyorum kendime okudukçada teşekkür edeceğim...


ete_pbpdersleri2.rar

üsteki herşey giriş kısmımızdı.derslerimizin nasıl gidecegini zaman ve istekleriniz belirleyecektir.
1. basic derleyicisi elde ettik.(mcstudio:ara yüz asıl derleyimiz pbp kılasörünün içinde bulunmaktadır.)bu iki proğramın ayarlarını üsteki linkleri takip ederek yapabilirsiniz.
2. bize ait olmayan bir kodu derlemeye çalıştık.bunun sayesinde derleyicimizin ayarının tam olup olmadığını anlayabiliriz...
3. led projelerinden başlayacagız.(yaklaşık olarak 10 yada 15 proje düşünüyorum)bu projelerin bazılarını arkadaşlarımın yaptıkları projeleri vererek bitirecegiz.
4.lcd kullanımı bereber ögrenecegiz.
5.böyle böyle devam edecek.

ben burda komutların nasıl kullanıldığını anlatmayacagım  örnekler üzerinde bu komutları kullanmayı göreceğiz.bunu gerçekleştirirkende komutları kullanırken karşılaştığımız sorunları beraber tartışacağız.
pic basic ustalarında bize yardım edeceğine eminim...
yarın led projelerimize başlayacagız...

sağlıcakla kalın...

stlg

Sevgili electrotechnics
Arkadasım ben programlarımı asm yazıyorum bu forumda yazılanları anlayabilmek ve bilgilerimi diger arkadaslarımla paylaşmak icin diger dilleride ogrenmeye calısıyorum pbp konusundaki katkıların icin cok teşekurler kolay gelsin

       ALLAHA EMANET OLUNUZ
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

a.zorba

bol açıklamalı örnekler verirsen ögrenme daha da kolaylaşabilir ete hocamızın notlar ile bir yere kadar geldik sizinlede inşallah bir adım daha ileri gideriz.
Bilenler bilir . Biz maraşlilar için şehir olarak şubat ay' i bayram ,kurtuluş ,yaz in gelmesiydi. Şimdi karalar in yas in ayı oldu.

electrotechnics

Sevgili stlg,destegin için teşekkürler,ben öğrenecegim ögrendikçe sizinle paylaşacağım...
Sevgili electrotechnics 
Arkadasım ben programlarımı asm yazıyorum bu forumda yazılanları anlayabilmek ve bilgilerimi diger arkadaslarımla paylaşmak icin diger dilleride ogrenmeye calısıyorum pbp konusundaki katkıların icin cok teşekurler kolay gelsin 

ALLAHA EMANET OLUNUZ


sevgili  a.zorba merak etme full örnek olarak gidecegiz...

bol açıklamalı örnekler verirsen ögrenme daha da kolaylaşabilir ete hocamızın notlar ile bir yere kadar geldik sizinlede inşallah bir adım daha ileri gideriz.




arkadaşlar sizden gelecek örnekleride bekliyoruz...örnek serimiz başlıyor.burda ilk önce ben deneyeceğim.sonra sizinle paylaşacağım.

electrotechnics

Arkadaşlar daha ayrıntılı yazmıştım ama elektrik kesintisi yüzünden tekrar yazmak zorunda olduğum için daha kısa tutmak zorunda kaldım...
1.MCLR ucuna dikkat etmeliyiz.Bu ucu mutlak gerekli yerlere bağlamalıyız. Yoksa picimiz dalgalanmalardan (gürültüden)  dolayı kendi kendine resetleyecektir.
2.Pice ilk enerji verildiğinde kendi kendini resetleyerek kodu baştan itibaren tekrar uygulamaya başlar.Ama bazen özellikle kapasitör (kondansatör) kullanılan devrelerde bazan kısa sureli elektrik kesilmelerinde pic kendi kendini resetleyememektedir. Böyle bir durumla karşılaşmamak için harici reset devresi bağlanmalıdır.
Proglama yapacagımız pic data sheet iyi okumamız gerekmektedir. Genellikle tüm piclerde bir ucun farklı görevleri vardır.Bu sebepleten dolayı pic ilk enerji verildiğinde hanği ucun aktif olduğunu iyi tesbit etmemiz gerekiyor.Genelikle anaolog girişler aktif olmaktadır. Piclerde büyük çogunlukla  dijital girişler kullanılır. Girişleri dijitale çevirmek için aşağıdaki komutlara dikkat etmemiz gerekmektedir.                

ADCON1=7  
CMCON=7                                                                                            
3.Açık kollektör olan uçlara dikkat etmemiz gerekmektedir.PIC16f84 de olduğu gibi PORTA nın 4. pinine  baktığınız zaman bu pinin 0V (0)  (GND ) çıkış olarak gönderdiğinizde herhangi bir sorunla karşılaşmazsınız.Ama 5V (1) gönderdiğinizde bu uçun empedansı çok büyük olduğundan dolayı açık uç gibi davranır.Bu durunda pin ucu istediğimiz sonucu vermez. Bunu önlemek için pull_up direnci ile VDD beslenmesine bağlanmalıdır.Direnç degerinin 1K ile 3K arasında istediğimiz değeri seçebiliriz.(bu yazıdan birsey anlamadıysanız ete arkadaşımızın ders notlarında 4 nolu uçla alakalı resimli bir örnek var oraya bakabilirsiniz.)
4.Tüm piclere enerji verildiğinde uçların hepsi giriş olarak yönlenir.Bu durumu program yazarken göz önünde bulundurmalıyız...
5.Birde programı yazarken mutlaka  açıklama yapmalıyız...

Simdilik bu kadar yeter diye düşünüyorum.Eklemek istediğiniz birsey varsa yada ğözden kaçırdığım mutlak ekleyinde bilmiyorsak öğrenelim...

Sağlıcakla kalın...

electrotechnics

Ders1:16F84 kullanılarak gerçekleştirilecektir.PORTA.1 bitine basıldığında PORTB.0 biti yakan program.

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [Electrotechnics]                                 *
'*  Notice  : Copyright (c) 2006 [e.c]                          *
'*          : All Rights Reserved                               *
'*  Date    : 10.02.2006                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
TRISB=%00000000      'veya TRISB=0  gösterebilirdik .PORTB yi çıkış olarak atıyoruz.
                 'benim kullandığım gösterimi tercih etmeniz her zaman menfatinize.
TRISA=%00000010  'PORTA nin 1. bitini çıkış olarak atadık.

PORTB=0          ' ÇIKIŞLARI SIFIRLA

KONTROL:         'KONTROL İSMİNDE ETİKET TANIMLADIK.
    IF PORTA.1=0 THEN YAK    'BUTONA BASILDIYSA (BURDA BUTONUMUZUN PULL_UP OLDUGUNA DİKKAT EDİNİZ.)
    GOTO KONTROL             'BUTONA BASILMADIĞI SURECE DEVAMLI BUTONU KONTROL ETMESİNİ SAĞLIYORUZ.
YAK:             'ETİKET TANIMLADIK.
    PORTB.0=1     'BUTONO BASILDIĞINDA PORTB NİN 0 BİTİNE 5V GÖNDERİYOZ.
    END            'BU PROGRAM TEKRAR DALLANDIRILMADAN SONLANDIRILMISTIR.


Bu program size çok basit gelebilir bu normal.bu programı birkaç degişik yolla gerçekleştirebiliriz.

electrotechnics

Örnek2:PortA nın 0 rıncı butonuna basınca PortB'nın 1.butonunu yakan ve aynı butonu PortA nın 1 butonuna basarak söndüren program yazınız.
(bu örneklerde ve diğer örneklerde BUTTON komutunu kullanmamaya çalışarak gerçekleştiriniz.BUTTON komutu genellikle hata vermektedir.Hata verdigini deneyerek görünüz.Neden hata verdiğini bilmiyorum ama galiba flagleri etkiliyor.Button komutuyla gerçekleştirebilen arkadaş varsa lütfen buraya eklesin.)

TRISB=%00000000  'veya OUTPUT PORTB.0 KULLANABİLİRDİK.
TRISA=%00000011   ' Veya "Input PortA.1 ve Input PortA.2" kulanarakta giriş olarak atayabilirdik.

PORTB=0             'Led çıkısını sıfırladık...

KONTROL:
    IF PORTA.1=0 THEN YAK     'porta nın 0 pin basıldıysa yak git.
    IF PORTA.2=0 THEN SON     'portanın 1 pin basıldıysa son git.(pinleri pull_up) 
    GOTO KONTROL               'pinlere basılana kadar donguye gir.pine basılınca gerekli yere dallan.
YAK:
    HIGH PORTB.0               'portb nın 0 pinini yak.(5V ata)
    GOTO KONTROL               'burdaki işini bitirdikten sonra tekrar butonlorun durumunu kontrol et.
SON:
    LOW PORTB.0                 'portb nın 0 pinini söndür.(0V ata)
    GOTO KONTROL                'burdaki işini bitirdikten sonra tekrar butonlorun durumunu kontrol et. 
END


ikinci dersimizde dikkat etmeniz gereken nokta.goto komutudur.

electrotechnics

Arkadaşlar sizinde katkılarınızı bekliyoruz.Ledle alakalı gerçekleştirdiginiz örnekler varsa buraya ekleyin üzerinde beraber yorum yapalım...
ders nasıl gidiyor bilmiyorum ama su anda yeni bir proje aldım.onu gerçekleştirmek için aranızdan birkaç gün ayrılacagım. bu arada benimle bereber ögrenmeye calısan arkadaşlara gerçekleştirmesi için bir kaç proje verecegim...

1. porta nın 0 pinene bastıgımız sürece port b nin tüm pinlerini yakıp söndüren program.

2. port anın 1 pinine basıldıgında sırasıyla portb nin durumu aşagıdaki gibi degişecektir.sonra tekrar başa dönecektir.(pini pull_down olarak ayarlayınız)
1.durum:00111111
2.durum:11001111
3.durum:11111100
4.durum:10101010

3. yukardaki durumları iki buton kullanarak kontrol ediniz.porta nın 1 pinine basıldıgında ileri dogru saysın,porta nın 2 pinine basıldıgında
durumları geriye dogru saysın. (pinleri pull_up olarak ayarlayınız)

4. porta nın 1 butonun(pinlere buton baglı oldugunu dusununuz) basınca
portb nin 2 pinine baglı olan led 20ms aralıkla yanıp sönsün.aynı pine (portanın 1 pinine) bastıgımızda ledin yanıp sönme süresi 20ms yanık 5 ms sönük olarak değişşin.Pine bir daha bastıgımızda led 5ms yanık,5ms sönük olarak değişsin.sonra tekrar 1. durumuna geri dönsün.
1. durum 20ms sonuk 20ms yanık
2. durum:20ms yanık 5 msn sonuk
3. durum 5ms yanık 5 ms sonuk

yukardaki ödevleri gerçekleştirmeye çalışmanız sizin açınızdan cok iyi olacaktır.karşılaştıgınız sorunları buraya yazarak hep beraber dogru yolu bulmaya calısalım.kodunuz dogruda olsa yanlışta olsa buraya yazın ama lütfen ilk önce yanlış olup olmadıgını yada emin olup olmadıgınız söyleyinki kodu kullanmak isteyen arkadaş ugraşmasın.

bugunkü konumuzu Fikret San  arkadaşımızın yaptıgı led projesini vererek bitirmek isityorum..


led projesi

'****************************************************************
'*  Name    : Running-LEDs.BAS                                  *
'*  Author  : F.San                                             *
'*  Date    : 11.01.2004                                        *
'****************************************************************
@ device pic16F84, xt_osc, wdt_off, pwrt_on, protect_off

' PortB Leds
LD1 Con 1
LD2 Con 2
LD3 Con 4
LD4 Con 8
LD5 Con 16
LD6 Con 32
LD7 Con 64
LD8 Con 128

PB_Up   var PortA.0 
PB_Dn   var PortA.1 
PB_Auto var PortA.2 

Up_Dn   var bit
Mode    var byte 
ModeOld var byte
PBData  var byte
Cnt1    var byte 
Cnt2    var word 

TrisA = %11111 
TrisB = %00000000
PortA = 0
PortB = 0

modeOld = 0
Up_Dn  = 1   ' Count up
Cnt1   = 0 

Main: 
   Mode = PortA >> 3       ' Read Mode Switch
   
   if modeOld <> Mode then ' if mode switch changed then,
      Modeold = Mode       ' Save new mode and
      PBData = 0           ' Clear PortB leds
      Up_Dn  = 1           ' Count up
      Cnt1   = 0 
   endif    
   
   gosub Chk_PB_UpDn
   
   if PB_Auto then 
      if Up_Dn = 1 then 
         gosub Run_Up 
      else 
         gosub Run_Dn
      endif
   endif
   
   PortB = PBData
   
   if PB_Auto then
      pause 100
   else
      gosub DeBounce
   endif

Goto Main    


Chk_PB_UpDn:   
   if PB_Up then 
      Up_Dn = 1
      if not PB_Auto then gosub Run_Up
   else 
      if PB_Dn then 
         Up_Dn = 0
         if not PB_Auto then gosub Run_Dn
      endif
   endif   
return      

Run_Up:
   select case Mode
      case 0  
         if Cnt1 = 16 then 
            if PB_Auto then 
               Up_Dn = 0
            else   
               cnt1 = 0    
            endif   
         endif
         Cnt1 = cnt1 + 1 
         gosub Mode0
      case 1 
         if Cnt1 = 9 then 
            if PB_Auto then 
               Up_Dn = 0
            else   
               cnt1 = 0    
            endif   
         endif
         Cnt1 = cnt1 + 1 
         gosub Mode1
      case 2
         PBData = PBData + 1
      
      case 3
         if Cnt1 = 11 then 
            if PB_Auto then 
               Up_Dn = 0
            else   
               cnt1 = 0    
            endif   
         endif
         Cnt1 = cnt1 + 1 
         gosub Mode3
    end select
return      

Run_Dn:
   select case Mode
      case 0  
         if Cnt1 = 0 then 
            if PB_Auto then
               Up_Dn = 1
            else
               cnt1 = 16
            endif
         endif
         Cnt1 = cnt1 - 1 
         gosub Mode0
      case 1
         if Cnt1 = 0 then 
            if PB_Auto then
               Up_Dn = 1
            else
               cnt1 = 9
            endif
         endif
         Cnt1 = cnt1 - 1 
         gosub Mode1
      case 2
         PBData = PBData - 1
      
      case 3
         if Cnt1 = 0 then 
            if PB_Auto then
               Up_Dn = 1
            else
               cnt1 = 11
            endif
         endif
         Cnt1 = cnt1 - 1 
         gosub Mode3
    end select
return

Mode0:
   select case cnt1 
      case 00 : PBData =  0
      case 01 : PBData =  ld1
      case 02 : PBData =  ld1+ld2
      case 03 : PBData =  ld1+ld2+ld3
      case 04 : PBData =  ld1+ld2+ld3+ld4
      case 05 : PBData =  ld1+ld2+ld3+ld4+ld5
      case 06 : PBData =  ld1+ld2+ld3+ld4+ld5+ld6
      case 07 : PBData =  ld1+ld2+ld3+ld4+ld5+ld6+ld7
      case 08 : PBData =  ld1+ld2+ld3+ld4+ld5+ld6+ld7+ld8
      case 09 : PBData =  ld2+ld3+ld4+ld5+ld6+ld7+ld8
      case 10 : PBData =  ld3+ld4+ld5+ld6+ld7+ld8
      case 11 : PBData =  ld4+ld5+ld6+ld7+ld8
      case 12 : PBData =  ld5+ld6+ld7+ld8
      case 13 : PBData =  ld6+ld7+ld8
      case 14 : PBData =  ld7+ld8
      case 15 : PBData =  ld8
      case 16 : PBData =  0
    end select
return

Mode1:
   select case cnt1 
      case 00 : PBData =  0
      case 01 : PBData =  ld1
      case 02 : PBData =  ld2
      case 03 : PBData =  ld3
      case 04 : PBData =  ld4
      case 05 : PBData =  ld5
      case 06 : PBData =  ld6
      case 07 : PBData =  ld7
      case 08 : PBData =  ld8
      case 09 : PBData =  0
    end select
return

Mode3:
   select case cnt1 
      case 00 : PBData =  0
      case 01 : PBData =  ld1
      case 02 : PBData =  ld1+ld2
      case 03 : PBData =  ld1+ld2+ld3
      case 04 : PBData =  ld2+ld3+ld4
      case 05 : PBData =  ld3+ld4+ld5
      case 06 : PBData =  ld4+ld5+ld6
      case 07 : PBData =  ld5+ld6+ld7
      case 08 : PBData =  ld6+ld7+ld8
      case 09 : PBData =  ld7+ld8
      case 10 : PBData =  ld8
      case 11 : PBData =  0
    end select
return

DeBounce:
   Cnt2 = 0
   repeat 
      Cnt2 = Cnt2 + 1
      pause 1
    until (PB_Dn = 0) and (PB_Up = 0) or (Cnt2 > 200)
    if Cnt2 < 50 then pause (50 - Cnt2) ' debounce   
return

End


birkaç gün ara vermek zorundayım.projeyi bitirince tekrar yanınızdayım.

sağlıcakla kalın.

mikro29

@ electrotechnics,
devamını bekliyoruz...
şimdiden teşekkürler

electrotechnics

Arkadaşlar sizinde katkılarınızı bekliyoruz.En azından verilen ödevleri gerçekleştirmeye çalışın yada ödev verin beraber yapalım inanıyorumki burdaki konular sıfırdan başlayan arkadaşlara bir kaynak olacak ve onların zorlanmadan projeler yapmasını saglayacaktrır.

ftsahin

Basit bir ileriye doğru yürüyen ışık programı. Bütün ledler portb'ye bağlı.

i var byte
j var byte
trisb=0
basla:
j=1
for i=0 to 7
 portb=j
 j=j*2
 pause 150
next i
goto basla

Bu da geriye doğru yürüyen ışık programı

i var byte
j var byte
trisb=0
basla:
j=128
for i=0 to 7
 portb=j
 j=j/2
 pause 100
next i
goto basla

trexmilennium

Alıntı yapılan: "electrotechnics"
Chk_PB_UpDn:  
  if PB_Up then

Burada bir hata var mı? sizce?
if PB_Up=0 veya 1 demeli deil miydi?

CaFFeiNe

pbp de zaten

if PB_Up = 1 then ile
if PB_Up then

aynı anlama geliyor

cirak05

Merhaba.
electrotechnics, ben pic ile ilgili birde kitap aldım ve başlangıç safhasındayım. Benim yapmak istediğim 16f84 pic ile alıcı verici. Araya UDEA firmasından aldığım dijital alıcı vericiyi bağlayacağım. Uzun zamandır bu devreyi yapmaya çalışıyorum ve ara verdiğimden mantığını falan kavrayamadım. Mesela verici pic'ten herhangi bir girişe 1'e basıldığında alıcı pic'te 1 çıkışı aktif olacak. Böyle bir devrenin mantığını en azından tek tuşlu gerisini ben halletmeye çalışırım.

electrotechnics

Alıntı yapılan: "ekucuk"Merhaba.
electrotechnics, ben pic ile ilgili birde kitap aldım ve başlangıç safhasındayım. Benim yapmak istediğim 16f84 pic ile alıcı verici. Araya UDEA firmasından aldığım dijital alıcı vericiyi bağlayacağım. Uzun zamandır bu devreyi yapmaya çalışıyorum ve ara verdiğimden mantığını falan kavrayamadım. Mesela verici pic'ten herhangi bir girişe 1'e basıldığında alıcı pic'te 1 çıkışı aktif olacak. Böyle bir devrenin mantığını en azından tek tuşlu gerisini ben halletmeye çalışırım.

kardeş cok güzel örnekler vermiştim sana ama bilgisayarım kilitlendi hepsi gitti.birdaha yazmayada eriniyorum.kardeş umarım diger yazacaklarım seni tatmin eder.

ilk önce aramıza hoşgeldin diyerek başlamak istiyorum..

anladıgım kadarıyla boyle birsey yapmak istiyorsun...