MicroC ile PIC Programlama

İki buton iki lamba var, 1.butona basıldığında 1. Lamba - 2. Butona basıldığında sadece 2. Lamba- 1.butona yine basıldığında sadece 1.lamba yanacak soru bu hocam.
 
Son düzenleyen: Moderatör:
Program:

Kod:
void main() {

     TRISA = 0xFF;
     TRISB = 0x00;
    
     PORTA = 0x00;
     PORTB = 0x00;
    
     CMCON = 0x07;
    
     while(1) {
    
          if(Button(&PORTA, 0,1,1)) {
         
               PORTB.b0 = ~PORTB.b0;
               while(PORTA.b0);
          }
         
          if(Button(&PORTA, 1,1,1)) {

               PORTB.b1 = ~PORTB.b1;
               while(PORTA.b1);
          }
     }
}

Devre:
LPvDVZ.png


Projeyi de buradan indirebilirsin. Anlamadığın yer varsa da muhakkak sor. :)
 
Buton komutu açıklaması (Kaynak MikroC Help)

Button(unsigned short *port, unsigned short pin, unsigned short time, unsigned short active state)



unsigned short *port // Butonu bağladığın Port – Biz PORTA’ya bağladık.

unsigned short pin // Butonu bağladığın pin – Biz ilk butonu 0. pin, diğerini 1. pine bağladık.

unsigned short time // butonun basıldığının algılama zamanı. ( çok fazla önemli değil )

unsigned short active state // buton lojik 1 de mi aktif yoksa 0 damı. Dikkat edersen devrede buton toprağa bağlıdır ve butona basıldığında PIC’e lojik 1 gönderiyor.

&' da komutun Syntax şeklinde var. Yani her zaman eklenmelidir. ( Portun başındaki *'dan dolayı - Dolaylı adresleme yaptığı için )



Önceki programda da söylediğim gibi illa buton komutunu kullanmak zorunda değilsin. İstersen buton komutunu kullanmadan da yazayım. Ama buton kütüphanesi daha sağlıklı bir yöntemdir.
 
Uyarı! Bu konu 12 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı