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:
Entegre aynı mı?

PORT seçimi serbest mi?

Birde neresinde problemin var? Yani programı yazdın mı? Yoksa ben mi yazıp göndereyim?
 
Yazamadım port serbest evet, kafamı karıştırdı soru yazamadım o yüzden.
 
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:


Projeyi de buradan indirebilirsin. Anlamadığın yer varsa da muhakkak sor.
 
İf ile buton atıyoruz ya ordaki 0,1,1 ne oluyor? Birde arada ki '&' nedir?
 
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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…