MSP 430 - Yeni Başlayanlar

Başlatan GibsonSG, 07 Ocak 2013, 19:39:28

GibsonSG

Merhaba arkadaşlar. MSP 430'a yeni başlayan arkadaşlar olarak her derdimiz için ayrı konu açmayalım, başlangıç seviyesindeki sorularımızı burada soralım böylelikle hem forum kirlenmemiş olur hem de yeni başlayanlar forumda çok dolaşmak zorunda kalmadan temel seviye bilgilere ulaşmış olur diye düşünüyorum.  Yönetici arkadaşlar da olur derse buradan devam edelim derim.

İlk soruyu da ben sorayım. Aşağıda görüleceği üzere basit bir düğmeye basınca LED yak, parmağını çekince söndür uygulaması örneğini inceliyordum.

#include <msp430.h>
int main(void) {
   // Stop watchdog timer to prevent time out reset
     WDTCTL = WDTPW + WDTHOLD;

   while(1)
    {
     P1DIR =  BIT0 ;    //P1.0 çıkış olacak şekilde seçildi
          P1REN = BIT3;      //Pull-up direnci aktif edildi
     if(!(P1IN&BIT3))

        P1OUT |= BIT0;

     else
        P1OUT &= ~BIT0;

     }
}


Soruma gelirsek
P1OUT |= BIT0;
P1OUT &= ~BIT0;
satırları tam olarak ne şekilde işlemekte?

burak ozturk


Hocam iar içerisinde io430g2553.h dosyasını açarsanız bir tanımlamalarını şu şekilde görürsünüz.


/*-------------------------------------------------------------------------
 *   Standard Bits
 *-------------------------------------------------------------------------*/

#define BIT0                (0x0001)
#define BIT1                (0x0002)
#define BIT2                (0x0004)
#define BIT3                (0x0008)
#define BIT4                (0x0010)
#define BIT5                (0x0020)
#define BIT6                (0x0040)
#define BIT7                (0x0080)
#define BIT8                (0x0100)
#define BIT9                (0x0200)
#define BITA                (0x0400)
#define BITB                (0x0800)
#define BITC                (0x1000)
#define BITD                (0x2000)
#define BITE                (0x4000)
#define BITF                (0x8000)


bu sebeple aslında

P1OUT |= BIT0;
P1OUT &= ~BIT0;

komutları ile P1OUT 'u 1 ile OR layıp , 1 in degili ile AND lemiş bulunuyoruz .
happy coding.

metaltrrocker

Alıntı yapılan: burak ozturk - 07 Ocak 2013, 20:28:21


P1OUT |= BIT0;
P1OUT &= ~BIT0;

komutları ile P1OUT 'u 1 ile OR layıp , 1 in değili ile AND lemiş bulunuyoruz .
tam düşündüğüm gibi:D

GibsonSG

#3
Burak, teşekkürler hocam. metal ile biz de aynı şekilde
P1OUT = P1OUT | BIT0
P1OUT = P1OUT & ~BITO
oluyor diye düşündük de yine bir sormak lazım. Farklı bir mantıksa falan ilerde patlamayalım dedik :)

metaltrrocker

Alıntı yapılan: GibsonSG - 08 Ocak 2013, 11:46:17
Burak, teşekkürler hocam. metal ile biz de aynı şekilde
P1OUT = P1OUT | BIT0
P1OUT = P1OUT & ~BITO
oluyor diye düşündük de yine bir sormak lazım. Farklı bir mantıksa falan ilerde patlamayalım dedik :)
bunları attattım diyordum ki kesme kodlarını kite aktarınca buton yine çalışmıyor sen naptın ne durumdasın?

GibsonSG

2-3 gündür hiç dokunmadım. Biraz kafa dinleyeyim dedim.

metaltrrocker

kesmelerde buton çalışması dışında sorun şok gibi şimdilik,şarkı falan çaldırmaya çalışıyorum senkron sorunları var şimdilik

metaltrrocker

istersen çalıştırdığım kodları burdan ekleyebilirim,msp yi şu aralar müzikal olarak ele alıyorum:Dne kadar kare dalga üretsemde melodi melodidir:D