Şimdi Ara

pic c compiler!! (2. sayfa)

Bu Konudaki Kullanıcılar:
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
47
Cevap
0
Favori
9.570
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Bu gün içinde (büyük ihtimalle akşam) resimli bir şekilde bir kaç örnek kod yayınlarım. Beğendiğinize sevindim.
  • quote:

    Orjinalden alıntı: muuzoo

    biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.

    http://rapid-share.com/files/21192764/htpicc950.rar

    Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?
  • c dilinde pic e kod yazmak istiyorsan en sağlam derleyici budur diyolar. aynı şekilde pic c lite, ccs c, micro c gibi derleyicilerde var. genel olarak c dilini biliyosan hepsi aynı. sadece bikaç komut ve arayüz farklılıkları var.
  • quote:

    Orjinalden alıntı: 90alper90


    quote:

    Orjinalden alıntı: muuzoo

    biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.

    http://rapid-share.com/files/21192764/htpicc950.rar

    Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?




    Bu program pic c yi ve derleyicisini içinde bulunduran bir program. HI-TIDE sadece c kodu yazmak içiçn arayüz. derleme işlemi yine picc ile yapılıyor.
    Normalde picc yi kurup mplab da kod yazıp mplab içinden derlemeyi pic c ye yaptırırsın. Fakat bu program sayesinde mplab a gerek kalmıyor kodlarını HI-TIDE üzerinde yazıp derle dediğin zaman direk derleniyor. Ayrıca yazdığın kodu öalıştırıp inceleyebiliyorsun. Eğer beklerseniz bu başlık altında nasıl kod yazılıp derleneceğini resimli olarak göstereceğim.Örnek programlar vereceğim.




  • DEFINE OSC 4
    CMCON = 7
    VRCON = 0
    OPTION_REG.7=1
    M VAR BYTE
    N VAR BYTE
    TRISB=0
    TRISA=%10000
    PORTA=%11111
    PORTB=255
    PAUSE 500
    ANA:
    LOW PORTA.0
    LOW PORTA.1
    LOW PORTA.2
    LOW PORTA.3
    PORTB=%00000000
    IF PORTA.4=0 THEN BASLA
    PAUSE 50
    GOTO ANA
    BASLA:
    M=1
    N=4
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=12
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=28
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=60
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=124
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=252
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=4
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=12
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=28
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=60
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=124
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=252
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=4
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=12
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=28
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=60
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=124
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=252
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=4
    IF PORTA.4=1 THEN ZAR
    M=15
    N=12
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=28
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=60
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=124
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=252
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=5
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=13
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=29
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=61
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=125
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=253
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=7
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=15
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=31
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=63
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=127
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=255
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=1
    N=4
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=3
    N=12
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=255
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=125
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=15
    N=60
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    M=7
    N=28
    PAUSE 1
    IF PORTA.4=1 THEN ZAR
    GOTO BASLA
    ZAR:
    PORTB=N
    PORTA=M
    PAUSE 200
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    IF PORTA.4=0 THEN ANA
    PAUSE 50
    GOTO ANA


    arkadaşlar böyle bi kod var bunu pic e nasıl yüklicem




  • hangi işlemciyi kullanacaksın bu dosyaları microcode studio ile hex e çevirebilirsin.hangi işlemcinin kullanılacağını yazarsan ben hex e çevirebilirim
  • Denemeler-1


    Kaldığımız yerden devam ediyoruz. Dünki mesajımda yeni bir projeye nasıl başlanacağını göstermiştim. Şimdi o adımları bildiğinizi varsayıp basit bir kod ile neler olduğunu anlatmaya çalışacağım.

    1)Yukarıda anlatılan şekilde yeni bir projeye başlayın.Pic olarak 16f628a seçin
    2)main.c sayfasını açınız.
    3)Karşınızda boş bir sayfa göreceksiniz.Sayfada //TO DO ile başlayan yazıyı silebilirsiniz ve kodunuzu oraya yazabilirsiniz.

    Aşağıdaki resimde basit bir kod verilmiştir.
    />


    Tam ekran görmek için :https://store.donanimhaber.com/01/c2/c3/01c2c3ff066c5c84e3c77fef4757c724.gif

    Şimdi buradaki kodun ne yaptığını basitçe şöyle özetleyebiliriz. Pic'in B portuna bağlı ledleri 2 yanık 2 sönük durumunda tutar.
    quote:


    #include <htc.h> /////////bu kısım otomatik oluşur

    void ////bu kısım otomatik oluşur///
    main(void) ////bu kısım otomatik oluşur///
    { ////bu kısım otomatik oluşur///

    PORTB=0; ///B portunun tüm çıkışları sıfırlanıyor. Lojik 0 durumunda
    TRISB=0; ///B portu çıkış birimi olarak ayarlanıyor.

    PORTB=0xcc; ///B portuna 0xCC değeri yükleniyor. Bu sayının 2lik karşılığı=11001100

    for(;;); ///Sonsuz döngü

    } /////////bu kısım otomatik oluşur


    Çalışan kodun isis görüntüsü eklenmiştir.
    />


    Tam ekran görmek için:https://store.donanimhaber.com/d8/a0/1a/d8a01a60fcf690195c24ba7c52ccb4e7.gif

    Yazdığınız kodu denemeniz için ekte Proteus dosyalarını gönderiyorum. Şema 6.9 Sp5 te hazırlanmıştır. Fakat pakete hex kodlarını dahil etmedim onu size bırakıyorum
    http://rapid-share.com/files/21531757/Program_1.rar
    İndirmek için "-" işaretini siliniz.

    Şimdililk bu kadar.Hatalarım varsa affola. Devamı gelecektir. Kod çok basit olabililr. Fakat bir sıraya göre gitmeyi düşünüyorum. Takip ettiğim kitap "PIC PROGRAMLAMA 16F628A" dır. Yazarı Orhan Altınbaşak. Orda kodlar asm ile verilmiş. Ben onları c diline uyarlıyorum. Bazen birebir uayrlama kolay oluyor bazen se kendi mantığımı kullanıyorum.



    < Bu mesaj bu kişi tarafından değiştirildi muuzoo -- 17 Mart 2007; 23:40:19 >




  • hocam eline saglık... Bildigin genis bir pic c kitabı var mı ? Kutuphaneden birkac tane bulmustum ama, mesela sadece sıcaklık projelerinin oldugu bir kitap idi. Gerci epey fikir veriyor pic c ile alakalı ama bildigin daha genis bir pic c (hi-tech pic c ) kitabı var mı ?
  • @respected nicli arkadaşımızın güzel bir pdf i ,ccs (pcwh) kullanımı anlatıyor.

    http://rapid-share.com/files/11425977/ccs_book.rar.html

    Nigel gardnerin kitabı güzel,internette Türkçesi de dolaşıyor.

    Birini bilen diğerine rahat geçiş yapabilir.
    Sonunuz iar olacak...
  • quote:

    Orjinalden alıntı: NiQuitinCQ

    hocam eline saglık... Bildigin genis bir pic c kitabı var mı ? Kutuphaneden birkac tane bulmustum ama, mesela sadece sıcaklık projelerinin oldugu bir kitap idi. Gerci epey fikir veriyor pic c ile alakalı ama bildigin daha genis bir pic c (hi-tech pic c ) kitabı var mı ?



    Maalesef bildiğim bir pic c kitabı yok. O yüzden yardımcı olamaycağım. Ben de o yüzden asm kodlarının c karşılığını yazarak çalışıyorum. BU sayede iki dile de aşina olmuş oluyorum. Zira bazı durumlarda c nin yetmediği yerde asm kodlarına ihtiyaç olabilir.

    Aklıma gelmişken eğer c içinde asm kullanmak isterseniz
    #asm
    kodlar
    buraya
    #endasm

    biçiminde c programının içinde asm kodu kullanabilirsiniz.
  • quote:

    Orjinalden alıntı: muuzoo

    Denemeler-1


    Kaldığımız yerden devam ediyoruz. Dünki mesajımda yeni bir projeye nasıl başlanacağını göstermiştim. Şimdi o adımları bildiğinizi varsayıp basit bir kod ile neler olduğunu anlatmaya çalışacağım.

    1)Yukarıda anlatılan şekilde yeni bir projeye başlayın.Pic olarak 16f628a seçin
    2)main.c sayfasını açınız.
    3)Karşınızda boş bir sayfa göreceksiniz.Sayfada //TO DO ile başlayan yazıyı silebilirsiniz ve kodunuzu oraya yazabilirsiniz.

    Aşağıdaki resimde basit bir kod verilmiştir.
    />


    Tam ekran görmek için :https://store.donanimhaber.com/01/c2/c3/01c2c3ff066c5c84e3c77fef4757c724.gif

    Şimdi buradaki kodun ne yaptığını basitçe şöyle özetleyebiliriz. Pic'in B portuna bağlı ledleri 2 yanık 2 sönük durumunda tutar.
    quote:


    #include <htc.h> /////////bu kısım otomatik oluşur

    void ////bu kısım otomatik oluşur///
    main(void) ////bu kısım otomatik oluşur///
    { ////bu kısım otomatik oluşur///

    PORTB=0; ///B portunun tüm çıkışları sıfırlanıyor. Lojik 0 durumunda
    TRISB=0; ///B portu çıkış birimi olarak ayarlanıyor.

    PORTB=0xcc; ///B portuna 0xCC değeri yükleniyor. Bu sayının 2lik karşılığı=11001100

    for(;;); ///Sonsuz döngü

    } /////////bu kısım otomatik oluşur


    Çalışan kodun isis görüntüsü eklenmiştir.
    />


    Tam ekran görmek için:https://store.donanimhaber.com/d8/a0/1a/d8a01a60fcf690195c24ba7c52ccb4e7.gif

    Yazdığınız kodu denemeniz için ekte Proteus dosyalarını gönderiyorum. Şema 6.9 Sp5 te hazırlanmıştır. Fakat pakete hex kodlarını dahil etmedim onu size bırakıyorum
    http://rapid-share.com/files/21531757/Program_1.rar
    İndirmek için "-" işaretini siliniz.

    Şimdililk bu kadar.Hatalarım varsa affola. Devamı gelecektir. Kod çok basit olabililr. Fakat bir sıraya göre gitmeyi düşünüyorum. Takip ettiğim kitap "PIC PROGRAMLAMA 16F628A" dır. Yazarı Orhan Altınbaşak. Orda kodlar asm ile verilmiş. Ben onları c diline uyarlıyorum. Bazen birebir uayrlama kolay oluyor bazen se kendi mantığımı kullanıyorum.


    kardeş ellerine sağlık çok güzel olmuş....




  • Sayın muuzoo, onurabi ve emeği geçen diğer arkadaşlar. Paylaşımlarınız için teşekkürler...
  • quote:

    Orjinalden alıntı: muuzoo


    quote:

    Orjinalden alıntı: 90alper90


    quote:

    Orjinalden alıntı: muuzoo

    biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.

    http://rapid-share.com/files/21192764/htpicc950.rar

    Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?




    Bu program pic c yi ve derleyicisini içinde bulunduran bir program. HI-TIDE sadece c kodu yazmak içiçn arayüz. derleme işlemi yine picc ile yapılıyor.
    Normalde picc yi kurup mplab da kod yazıp mplab içinden derlemeyi pic c ye yaptırırsın. Fakat bu program sayesinde mplab a gerek kalmıyor kodlarını HI-TIDE üzerinde yazıp derle dediğin zaman direk derleniyor. Ayrıca yazdığın kodu öalıştırıp inceleyebiliyorsun. Eğer beklerseniz bu başlık altında nasıl kod yazılıp derleneceğini resimli olarak göstereceğim.Örnek programlar vereceğim.

    Yani pic c programında kullanılan bir dille yazılmış olan bir c kodunu bu derleyiciyle derleyebilirim değil mi?




  • muzoo kardeş sana bir sorum var ve diğer arkdaşlara da birz konu dışı ama sorayım ben gine de
    Arkadaşlar bir konuda yardımınıza ihtiyacım var.
    sorun şu: Şimdi mıknatıs takılıyken yazı hep belirli bir noktada oluşuyor.
    ben mıknatısı çıkardım ve DELAYMS(20) yaptım yani tam motora göre ayarladım.
    sonra motor hareket ettiğinde yazı yavaşça hareket ediyor dönüyor.
    yani resmen havada kayan yazı gibi oluyor.AMA bmyle dönerken birden yazı öteki tarafa atlıyor.
    yine ne güzel dönüyor yavaşça yine aynı pat diye yazı atlıyor niye böyle oluyor?????
    lütfen bişeyler söyleyin
    video::
     pic c compiler!!

    http://www.youtube.com/watch?v=Sa9HXglpjqU

    evet arkadaşlar bu sorun mu değil mi???




  • Gördüğüm kadarıyla sanki zamanlama sorunu var gibi geldi bana. Aslına bakarsan bu tarz bir çalışma yapmadığım için emin olamıyorum ama görüntünün birden başka bir yere atlaması sanki bir senkron sorunu olduğunu gösteriyor.
  • quote:

    Orjinalden alıntı: muuzoo

    Gördüğüm kadarıyla sanki zamanlama sorunu var gibi geldi bana. Aslına bakarsan bu tarz bir çalışma yapmadığım için emin olamıyorum ama görüntünün birden başka bir yere atlaması sanki bir senkron sorunu olduğunu gösteriyor.


    kardeş zamanlamayı 20 yaptığım zaman böle oluyor. Ama 20 yi 30 40 veya 10 yaparsam yazı okunmuyor yazı çok hızlı dönüyor ama 20 yapınca görebiliyorum.Bence zamanlamada bir sorun yok ama dedim acaba programda mı bir hata var????
  • Aklıma takılan şu aslında. NOrmalde yazının aynı yerde görünmesi iççn programda ayarlanan zamanlama ile motorun zamanlamasının tutması gerekiyor değil mi?Sallıyorum normalde yazının başlangıcı (düzlemi bir saat olarak düşünelim) saat 11 noktasında oluyor. aynı yerde görünmesi için programın hep aynı noktada tekrar edip başlaması lazım. Ama senin çalışmanda sanki motor devri ile programdaki gecikme tam oturmuyormuş gibi geldi. Daha öncede demiştim böyle bir çalışma yapmadığım için sadece tahmin yürütüyorum.

    Denemeler-2


    Bir önce ki yazıda basit bir şekilde çıkışların nasıl kullanılacağını göstermiştim. Bu sefer ise girişten alınan bilgiye göre çıkışın değiştirilmesi mantığıyla çalışan yine basit bir kod vereceğim.

    Daha önce anlatıldığı gibi yeni bir proje açıyoruz.Pic olarak 16f628a kullanıyoruz.Aşağıda gerekli kodları veriyorum

    quote:



    #include <htc.h>

    void
    main(void)
    {
    PORTB=0x00;------>PORTB'ye başlangıç değeri olarak sıfır atanıyor
    TRISB=0x00;------>PORTB çıkış olarak ayarlanıyor.
    CMCON=0x07;------>PORTA'nın ilk 4 pini normalde analog moddadır.Bunu lojik giriş çıkış ayarlayabilmek için CMCON saklayıcısına 0x07 değeri atanması gerekir.
    //PORTA=0x00;------>PORTA'ya başlangıç değeri olarak sıfır yükleniyor
    TRISA=0xFF;------>PORTA giriş olarak ayarlanıyor.

    for(;;){------>PIC'lerde durdurma komutu yoktur.Bu yüzden program bittikten sonra durmak istenirse sonsuz döngü kullanmak gerekir.Fakat bu durumda pic resetlenmeden program başa dönmez.Sürekli çalışması gereken programlarda ise kodda görüldüğü gibi çalıştırmak istediğimiz kod sonsuz döngünün içine yazılır bu sayede sürekli çalışan bir kodumuz olur.
    PORTB=PORTA;------>Giriş bilgileri çıkışa aktarılıyor
    }

    }




    Örnek ekran görüntüsü
    />


    Tam ekran görmek için ----------------> https://store.donanimhaber.com/a6/ad/d6/a6add66f36502619802d918d374320e9.gif

    Yazdığınız kodu denemek için gerekli olan ISIS dosyası ekte verilmiştir (v6.9 Sp5). Benzeşim sırasında anahtarlı açıp kapayarak programın verdiği tepkiyi görebilirsiniz.Hex dosyasıni vermedim. Onu siz halledersiniz

    Benzeşim dosyası------------> http://rapid-share.com/files/21789246/Program_2.rar (indirmek için "-" işaretini kaldırın)



    < Bu mesaj bu kişi tarafından değiştirildi muuzoo -- 19 Mart 2007; 16:27:13 >




  • quote:

    Orjinalden alıntı: muuzoo

    Aklıma takılan şu aslında. NOrmalde yazının aynı yerde görünmesi iççn programda ayarlanan zamanlama ile motorun zamanlamasının tutması gerekiyor değil mi?Sallıyorum normalde yazının başlangıcı (düzlemi bir saat olarak düşünelim) saat 11 noktasında oluyor. aynı yerde görünmesi için programın hep aynı noktada tekrar edip başlaması lazım. Ama senin çalışmanda sanki motor devri ile programdaki gecikme tam oturmuyormuş gibi geldi. Daha öncede demiştim böyle bir çalışma yapmadığım için sadece tahmin yürütüyorum.

    Denemeler-2


    Bir önce ki yazıda basit bir şekilde çıkışların nasıl kullanılacağını göstermiştim. Bu sefer ise girişten alınan bilgiye göre çıkışın değiştirilmesi mantığıyla çalışan yine basit bir kod vereceğim.

    Daha önce anlatıldığı gibi yeni bir proje açıyoruz.Pic olarak 16f628a kullanıyoruz.Aşağıda gerekli kodları veriyorum

    quote:



    #include <htc.h>

    void
    main(void)
    {
    PORTB=0x00;------>PORTB'ye başlangıç değeri olarak sıfır atanıyor
    TRISB=0x00;------>PORTB çıkış olarak ayarlanıyor.
    CMCON=0x07;------>PORTA'nın ilk 4 pini normalde analog moddadır.Bunu lojik giriş çıkış ayarlayabilmek için CMCON saklayıcısına 0x07 değeri atanması gerekir.
    //PORTA=0x00;------>PORTA'ya başlangıç değeri olarak sıfır yükleniyor
    TRISA=0xFF;------>PORTA giriş olarak ayarlanıyor.

    for(;;){------>PIC'lerde durdurma komutu yoktur.Bu yüzden program bittikten sonra durmak istenirse sonsuz döngü kullanmak gerekir.Fakat bu durumda pic resetlenmeden program başa dönmez.Sürekli çalışması gereken programlarda ise kodda görüldüğü gibi çalıştırmak istediğimiz kod sonsuz döngünün içine yazılır bu sayede sürekli çalışan bir kodumuz olur.
    PORTB=PORTA;------>Giriş bilgileri çıkışa aktarılıyor
    }

    }




    Örnek ekran görüntüsü
    />


    Tam ekran görmek için ----------------> https://store.donanimhaber.com/a6/ad/d6/a6add66f36502619802d918d374320e9.gif

    Yazdığınız kodu denemek için gerekli olan ISIS dosyası ekte verilmiştir (v6.9 Sp5). Benzeşim sırasında anahtarlı açıp kapayarak programın verdiği tepkiyi görebilirsiniz.Hex dosyasıni vermedim. Onu siz halledersiniz

    Benzeşim dosyası------------> http://rapid-share.com/files/21789246/Program_2.rar (indirmek için "-" işaretini kaldırın)


    yaw bende girişteki bilgileri çıkışa nasıl atılır die düşündüm aklım PORTB = PORTA geldi kodu derledim proteus'ta simulasyonunu yaparken yanlış çalışıyordu demek ki CMCON'u ayarlıyormuşuz. Bir soruda bu bilgileri sen nasıl elde ettin acaba bu konuda da bilgi verebilirmisin. bu arada çalışmaların için teşekkürler...




  • En baştan başlarsak c öğrenmek için C ve C++ adlı kitabı aldım.Sanırım sistem yayıncılık yazarlarından birinin adı Deitel'di. Daha sonra pic'e merak sarınca Altaş yayınlarından Pic Programlama 16f628 kitabını aldım. Kitapta kodlar asm dili ile verilmişti. Asm yi de sağolsun okulda z80 dersinde gördüm. Her ne kadar farklı olsa da mantığı benzerdi. Daha sonra bu pic kitabındaki kodları asm ye uyarlamaya çalıştım. Ondan sonra gerisi geldi. Ben de daha bu işte acamiyim ama uğraşmaya çalışıyorum boş buldukça.

    Denemeler-3


    Bu gün if/else yapısıyla yapılmış basit bir kod ve bir butona 15 defa basılınca (sayaç uygulaması) bir ledin yanmasını sağlayan bir uygulama yapılacaktır.Sayaç uygulamasında geciktirme döngüleri kullanılmadığı için. Benzeşim sırasında frekansın düşürülmesi gerekmektedir (ben 6khz olarak kullandım) Daha yüksek hızlarda kod istenildiği gibi çalışmayacaktır.

    quote:


    Kodun değişmeyen kısımlarını vermedim sadece bizim yazdığımı kodu ekledim

    PORTB=0x00;-------------->Portb başlangıç değeri sıfır olarak ayarlandı
    TRISB=0xFE;-------------->RB0 çıkış diğerleri giriş olarak ayarlandı
    TRISA=0xFF;-------------->Porta giriş olarak ayarlandı
    CMCON=0x07;-------------->RA0-RA3 pinleri lojik giriş çıkış olarak ayarlandı

    for(;;)-------------->Sonsuz döngü
    {
    if(RA0==0)-------------->Eğer RA0 giriş değeri sıfır ise RB0 daki ledi söndür.
    RB0=0;-------------->Ledi söndürme kısmı
    else-------------->Yok eğer (başka türlü anlam bulamadım) RA4 sıfır ise
    if(RA4==0)-------------->RA4 ün kontrol edildiği yer.
    RB0=1;-------------->RB0 daki ledi yak
    }


    Kodun örnek ekran görüntüsü
    />


    Tam ekran görmek için -------------> https://store.donanimhaber.com/6c/1c/15/6c1c150b8079aa3be174045167d05ecf.gif


    İkinci kodumuz ise bir butona 10 defa basıldığında ledi yakacak olan bir sayaç uygulaması. For ve while döngüleri ile hazırlanmıştır. İçinde basit bir geciktirme rutini vardır fakat mikrosaniyeler civarında geciktirme yaptığı için tavsiyem 5-6Khz pic hızında test edilmelidir. Geciktirme yeterli olmadığı için 1 Mhz de butona bir defa bastığınızda led yanacaktır.

    quote:



    int i=10,a;-------------->int tipinde değişkenler tanımlanıyor
    PORTB=0x00;-------------->Portb başlangıç değeri sıfır
    TRISB=0xFE;-------------->RB0 çıkış olarak diğer B pinleri giriş olarak tanımlanıyor.
    TRISA=0xFF;-------------->A portunun tüm pinleri giriş
    CMCON=0x07;-------------->A portunun ilk 4 pini içiçn lojik çalışma biçimi ayarlanıyor


    while(i>0)-------------->i değeri sıfırdan büyük oldukça tekrar et
    {
    a=15;-------------->Geciktirme döngüsü içiçn tekrar değer atanması
    if(RA0==0)-------------->eğer RA0 pininin değeri sıfıra eşitse
    {
    for(a=15;a>0;--a);-------------->Basit bir geciktirme döngüsü.15 ten geriye doğru sıfır olana kadar sayar sonra döngüden çıkar

    i=i-1;-------------->i değerini bir azalt ve tekrar i ye ata burada i-- komutu da kullanılabilirdi
    }
    }

    RB0=1;-------------->i değeri sıfıra ulaştığında yani butona 10 defa basıldığında program buraya gelecek ve RB0 daki ledi yakacaktır.
    for(;;);-------------->Sonsuz döngü


    Örnek ekran görüntüsü
    />


    Tam ekran görmek için----------> https://store.donanimhaber.com/0e/55/7c/0e557cf3ff5c3ba78499d5acebb47d4f.gif


    Ekte her iki program için benzeşim dosyaları verilmiştir. ISIS te hazırlanmıştır (v6.9 Sp5)

    İLk Program: http://rapid-share.com/files/21972717/Program_4.rar (indirmek için"-" leri silin)
    İkinci program:http://rapid-share.com/files/21972790/Program_5.rar


    Benzeşim dosyalarına hex kodue eklenmedi.




  • gecikme olarak DelayMs burada geçerli değil mi?
  • 
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.