mps2553 entegresinde led yakmak ?

Başlatan xxlxxl, 13 Kasım 2011, 20:58:07

xxlxxl

arakdaşlar bir türlü ne yapsam olmuyor mps 2553 entegresinde led yakmak

P1OUT |= 0x0001;
P1OUT |= 0x0002;
P1OUT |= 0x0004;
P1OUT |= 0x0008;
P1OUT |= 0x0010;
P1OUT |= 0x0020;
P1OUT |= 0x0040;
P1OUT |= 0x0080;
P1OUT |= 0x0100;
buraya kadar normal yanıyor fakat 2553 de boş pinklerii yakamıyorum

P1.5
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P1.6
P1.7

yardımcı olacak arkadaşlara şimdiden teşekkür ederim





fatihinanc

Merhaba,

Kodun tamamını eklerseniz daha rahat yardımcı olabilirim. Seçtiğiniz pinlerde farklı çevrebirimlerin çıkışları da bulunuyor.
Belki bunlar çıkış görevi yapmıyor olabilir.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

xxlxxl

#2
tamam ekliyorum sağolasın hocam

#include <msp430g2553.h>
#include   "stdbool.h"

#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)
int main( void )
{
P1DIR = BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7;
P1OUT = 0;
{
P1OUT |= BIT0;
P1OUT |= BIT1;
P1OUT |= BIT2;
P1OUT |= BIT3;
P1OUT |= BIT4;
P1OUT |= BIT5;
P1OUT |= BIT6;
P1OUT |= BIT7;
}
return 0;
}

2553 pinleri daha çok bende p2 lerde de led yakmak istedim bir türlü olmıyor fakat standart bit ler onlarda p2 lerinde çıkışları değerleri verilmiş 2553.h dosyası içeisinde bu değişkenler varbu dosyayı okuyor librariden zaten bitleri otomatik tanıyor fakat 7 pin yanıyor doğru diğerlerine yazdığım halde yanmıyor

fatihinanc

Kodda bir sorun yok gibi görünüyor. Şu şekilde sadeleştirilebilir.

#include <msp430g2553.h>

int main( void )
{
	P1DIR = BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7;
	P1OUT = 0;

	P1OUT |= BIT0;
	P1OUT |= BIT1;
	P1OUT |= BIT2;
	P1OUT |= BIT3;
	P1OUT |= BIT4;
	P1OUT |= BIT5;
	P1OUT |= BIT6;
	P1OUT |= BIT7;
	
return 0;
}


Bu kodun P1.0 - P1.7 arasını sırayla set etmesi lazım. Etmiyor mu ?
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

xxlxxl

#4
burda sorun yok bu kod sadece standart 7 pini aktif ediyor ama ben istiyorum ki kalan p2 ler var 2553 serisinde onlar neden yakamıyorum bunlarda sıkıntı yok hocam yanıyor bit9 10 - 11 devam edince neden p2 ler led yanmıyor ben çokled yakmak
istiyorum

P1.5
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
ben bu pinlere led bağladım bitleri girmeme ragmen bir türlü yakamıyorum bu pinler 2553 serisinde diğer pinleri yakıyorken bunlar yanmıyor bitler bunlar için ama yanmıyor

fatihinanc

8 - 9.. diye giden pinler P2 portuna ait.
Bunlar için P2 portunun saklayıcılarını kullanmalısın.

koda şu kısımları da eklemek gerekiyor;

P2DIR = BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7; //P2.0 - P2.7 çıkış
	P2SEL = 0x00; // P2.6 ve P2.7 bitlerini g/ç yapmak için.
	P2OUT = 0;


sonrasında ise P2OUT |= BIT0; şeklinde pinleri set etmelisin.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

xxlxxl

hocam tam olarak örneği yazarmısın hemen derley.p denicem çok makbule geçti kodu yaza bilrisen hemen derleyip işlicem led yakacak şekilde olmasını nasıl yapacağız

fatihinanc

Alıntı yapılan: xxlxxl - 13 Kasım 2011, 22:30:09
hocam tam olarak örneği yazarmısın hemen derley.p denicem çok makbule geçti kodu yaza bilrisen hemen derleyip işlicem led yakacak şekilde olmasını nasıl yapacağız

Bundan sonrasını senin getirebileceğine inanıyorum. Buraya kadar nasıl getirdiysen aynı şekilde... ;)
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

xxlxxl

SAYIN HOCAM AYNEN YAPTIM AMA YANMADI ??

P2DIR = BIT8|BIT9|BITA|BITB|BITC|BITD|BITE|BITF; //P2.0 - P2.7 çıkış
    P2SEL = 0x00; // P2.6 ve P2.7 bitlerini g/ç yapmak için.



P2OUT |= BIT8;
P2OUT |= BIT9;
P2OUT |= BITA;
P2OUT |= BITB;
P2OUT |= BITC;
P2OUT |= BITD;
P2OUT |= BITE;
P2OUT |= BITF;

fatihinanc

Alıntı yapılan: xxlxxl - 13 Kasım 2011, 22:34:07
P2DIR = BIT8|BIT9|BITA|BITB|BITC|BITD|BITE|BITF; //P2.0 - P2.7 çıkış

Buraya dikkat etmek lazım. Yukarıda BIT0 şeklinde yazmıştım. Dediğim gibi P2 portu P1 den bağımsız ayrı bir port. Ve dolayısiyle kendine ait saklayıcıları var.
Bunlar P1 için ne ise P2 için de aynıdır. Yani P1 portunun 0. bitini set etmek istiyorsan. P1OUT = BIT0, 7.bitini set etmek istiyorsan P1OUT |= BIT7 yazıyorsan aynı şeyler P2 portu için de geçerli.

Yani P2.0'ı set etmek için : P2OUT = BIT0;
P2.5'i set etmek için : P2OUT |= BIT5;

yazmak yeterli.

MSP430F2553'ün datasheetini iyi okumak gerekli. Yoksa bu ve benzeri sebeplerden dolayı ileride daha büyük yerlerde takılabilirsin.

Kolay Gelsin.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

xxlxxl

#10
SAYIN HOCAM SÜPERSİN FİKİRLER EVRDİN BİR KAÇ DENEME YAPIYORUM FARKLI ŞEYLERDE ŞU AN YANDI TEŞEKKÜR EDERİM DENEMELERE BAŞLADIM AYRICA FORM VE YAPIMCILARINA TEŞEKÜR EDERİM


NOT: BURDAKİ AMAÇ LED YAKMAK LA BERABER MANTIK KAPMAK GERÇEKTEN BU İŞLER LED YAK SÖNDÜR LE BAŞLIYOR FAKAT İŞİN İÇİNE GİRDİKÇE GÜZEL OLUYOR

xxlxxl

#11
TAMAM .............

xxlxxl

saygı değer arakdaşlar hocalarım merhabalar... yukarıdaki kodu baya denemeler yaptıktan sonra bir eksiklik daha buldum msnp serisinde anlaşılan daha çalışmam lazım eksiklik nedir...


1: p2 ye giden ledleri sıra ile yakmayı başardım..
2: fakat her ledi bağımsız kapa aç yamamadım

led1 , led2 , led3 yandı diyelim ben led1 i söndürmek istiyorum olmuyor

P2OUT = 0;          kodu ile tüm ledler aynı zamada sönüyor bir türlü olmuyor..

p1 ile olan ledlerde sorun yok herşey normal fakat bu p2 olan bacaklarda led yakma işlemi tamamken neden bağımsız sönmüyor tekrar yardımlarınız bekliyorum saygılarımla..

LED YAKMAK ------------------
P2OUT |= BIT0;  LED YANDI bunu söndürecek bir kod
P2OUT |= BIT1;  LED YANDI bunu söndürecek bir kod

!!!! P2OUT = 0;  bu kod tüm pin2 bağlantılarımı kesiyor

Mujdat117

#13
P2OUT = 0 yaptığınızda p2 portunu reset etmiş olursunuz yani yanan tüm ledleri söndürürsünüz. Siz seçtiğiniz 1 pinin durumunu toggle etmeniz gerekiyor.
P1out= '11111111'b yaptıgınızda tüm ledleri yakarsınız burdan herhangibi bir ledi söndürmek için
P2out='01111111'b porta bu şekilde yeniden yüğklemek yani portun ilgili bitinin durumunu terslemeniz gerekiyor.
C bilmeidğim için size kod konusunda yardımcı olamıycam ama mantık budur.
Ayinesi iştir kişinin lâfa bakılmaz.Şahsın görünür rütbe-i aklı eserinde

xxlxxl

P1OUT = 0x40; // LED on
P1OUT = 0x00; // led off

p2 lerde durumn farklı biraz yinede denicem yukafdaki kodu teşekür ederim