Şimdi Ara

ccs c port ayarlama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
14
Cevap
0
Favori
5.245
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 16f628a ile l298 devresi kurdum .2motoru 3 buton kullanarak aynı anda ileri ,geri ve durmasını sağlayacağım.bunu asm de yaptım ama c de birtürlü yapamadım.

    işte kodlar ccs c compile yapıyorum sürekli saçma saçma error veriyor.
    error vermeden yaptığımda ise isis te çalışmıoyor ilk defa karşılaştığım bir hata aldım.
    trisb instruction is deprecated for PIC16628
    trisa instruction is deprecated for PIC16628
    yazıyordu.
    #include <16f628A.h>  
    #fuses noprotect,nowdt,xt
    #use delay(clock=4000000)
    #DEFINE butonileri pin_a0
    #DEFINE butongeri pin_a1
    #DEFINE butondur pin_a2
    #DEFINE giris1 pin_b0
    #DEFINE cikis1 pin_b1
    #DEFINE giris2 pin_b2
    #DEFINE cikis2 pin_b3

    void main()
    {
    set_tris_b(0x00);
    set_tris_a(0xff);
    output_a(0x00);
    if (input(butonileri))
    {
    output_b(00000101);
    }

    if (input(butongeri))
    {
    output_b(00001010);
    }

    if (input(butondur))
    {
    output_b(0x00);
    }

    }



    < Bu mesaj bu kişi tarafından değiştirildi razor9119 -- 23 Aralık 2009; 16:53:36 >







  • hocam 16f84 mi kulandın yoksa 16f628 mi ? yazdıgın kodun basında 16f628a yazarken 16f84a kulandıysan problem olusabilir her nekadar benzer picler olsada sen hangisini kulanıyorsan onu tanımla kodun basına.
  • kodun if'li kısımlarını aşağıdaki şekilde düzeltip dener misin?


    if (input(butonileri)&&!input(butongeri))
    {
    delay_ms(15);
    output_b(00000101);
    }

    if (input(butongeri)&&!input(butonileri))
    {
    delay_ms(15);
    output_b(00001010);
    }
  • 14. satırda hata vermiş en azından burda set ederken bi hata vermemesi lazım sen en iyisi yeni bir proje olustur adım adım kodu yapıstır boylece hatanın kodun neresinde oldunu daha iyi anlarsın.
  • sen sanırım set_tris 'le portları giriş çıkış olarak ayarlamaya çalışmışsın fakat o komutu kullanmak için inputları fast i/o olarak seçmen gerekir ki #use fast_io(port ismi) komutunu kullanman gerekirdi. sen o komutları sil en iyisi zaten derleyici kendisi anlıyor giriş mi çıkış olduğunu.



    < Bu mesaj bu kişi tarafından değiştirildi jöntürk87 -- 23 Aralık 2009; 21:40:48 >
  • #DEFINE giris1 pin_b0
    #DEFINE cikis1 pin_b1
    #DEFINE giris2 pin_b2
    #DEFINE cikis2 pin_b3

    burada sanki b0 ve b3 çıkış gibi? Fakat set tris le b nin hepsini output yapmışsın bundan kaynaklı hatalarda olabilir.
  • quote:

    Orijinalden alıntı: jöntürk87

    sen sanırım set_tris 'le portları giriş çıkış olarak ayarlamaya çalışmışsın fakat o komutu kullanmak için inputları fast i/o olarak seçmen gerekir ki #use fast_io(port ismi) komutunu kullanman gerekirdi. sen o komutları sil en iyisi zaten derleyici kendisi anlıyor giriş mi çıkış olduğunu.


    Peki arkadaşın dediğini yaptın mı? Bundanda kaynaklanıyo olabilir.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • sen binary value atamaya çalışıyosun ama belirtecini yazmıyosun
    Örnek:
    senin yaptığın

    if (input(butonileri))
    {
    output_b(00000101);
    }



    olması gereken

    if (input(butonileri))
    {
    output_b(0b00000101);
    }

    bunu dene bakalım ne olacak



    < Bu mesaj bu kişi tarafından değiştirildi drexel -- 24 Aralık 2009; 0:14:58 >
  • compiler da mı sorun var tam olarak bilmiyorum ama ilk mesajındaki kodları derlediğimde ben herhangi bir error ile karşılaşmadım :?
  • istersen sana oluşan hexi göndereyim , proteus da bir dene
  • quote:

    #include <16f628A.h>
    #fuses noprotect,nowdt,xt
    #use delay(clock=4000000)
    #DEFINE butonileri pin_a0
    #DEFINE butongeri pin_a1
    #DEFINE butondur pin_a2
    #DEFINE giris1 pin_b0
    #DEFINE cikis1 pin_b1
    #DEFINE giris2 pin_b2
    #DEFINE cikis2 pin_b3

    void main()
    {
    set_tris_b(0x00);
    set_tris_a(0xff);
    output_a(0x00);
    if (input(butonileri))
    {
    output_b(00000101);
    }

    if (input(butongeri))
    {
    output_b(00001010);
    }

    if (input(butondur))
    {
    output_b(0x00);
    }

    }


    Programda sonsuz döngü yok bir kere çalışır sadece
    butonlardan sonra debounce için gecikme yok
    set tris komutlarını kullanmana gerek yok ccs kendi ayarlıyor yapmaya çalıştığında yanlış mevcut fuses konfigürasyonuyla a portunu ff yapamazsın a portu 5 bit
    butonları nası bağlantı yaptın ?




  • pull up direnci kullanmadınmı?
  • senin projene benzer bir proje var , tek motorlu ve motor sürücü entegresiyle kontrol sağlanmış. incele bakalım yardımcı olacağı noktalar olabilir. http://rapid-share.com/files/325652219/DC_Motor_Uygulamasae_.rar.html
  • İlk yazdığın derleniyor ama çalışmaz bu çünkü döngü yok.Bir kere butonları kontrol ettikten sonra mcu uyku moduna giriyor.ccs kodun en sonuna sleep koyuyo çünkü.Ayrıyeten butonları pull down yapman lazım bu koda göre.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.