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
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.
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
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 ?
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
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.
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
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... ;)
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;
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.
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
TAMAM .............
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
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.
P1OUT = 0x40; // LED on
P1OUT = 0x00; // led off
p2 lerde durumn farklı biraz yinede denicem yukafdaki kodu teşekür ederim
#include <msp430g2553.h>
#include "stdbool.h"
#define WDTCONFIG (WDTCNTCL|WDTSSEL)
int main( void )
{
//P1DIR = BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7;
//P1OUT = 0;
P2DIR = BIT0|BIT1|BIT2|BIT3|BIT4|BIT5;
P2DIR = 0xFF;
P2SEL = 0x00;
P2OUT = 0;
{
P2OUT |= BIT0;
P2OUT |= BIT1;
P2OUT |= BIT2;/
P2OUT |= BIT3;
P2OUT |= BIT4;
P2OUT |= BIT5;
///P2OUT = ????; en son fixlenen kod arkadaşlar burdaki kod p2 olan tüm ledleri yakar fakat sorun varki
// p2out ile istenilen led söndürülsün p2out = 0; kodu tüm ledleri söndürüyor
/// öyle bir kod olsunki istediğimiz ledi söndürelimm bu kod çalışıyorrr bu sorunu hala çözemedim //çözülmedi
// istenilen led söndürme kodu ne ola bilir ??? P2OUT = BIT2 yi söndürmek diğer ledler sönmesin
}
return 0;
yardımcı olacak herkese şimdiden teşekkür ediyorum
}
bunalmis hocanın C yazılarına göz gezdir
~ & bu işaretlerle yapılan bir yapı arıyorsun
bunalmış hocakimdir biraz daha açıklayıcı yardımlar bekliyorum
açıklayıcı yardımlar arama bölümünde bulunmaktadır, ayrıca bahsettiğim konu aşağıda buyrun;
https://www.picproje.org/index.php/topic,35908.0.html
sevgili arkadaşım çok güzel yalnız burd abenim özellikle örnek kodda koydum orda pin2 ler pin1 lerde sorun yok pin 2 lerde ledler sonmuyor aynıanda sonuyor istediğiğm şu led1 yak led1 sondur ama led2 yanarken led1 sondur kodu bu yuden koydum ordaki örneklr karışık pin1 ler için
mümkünse yukardaki örneğe göre örnek berilmesi bende deniyorum kitimde saygılarımla
Alıntı yapılan: xxlxxl - 16 Kasım 2011, 22:47:24
sevgili arkadaşım çok güzel yalnız burd abenim özellikle örnek kodda koydum orda pin2 ler pin1 lerde sorun yok pin 2 lerde ledler sonmuyor aynıanda sonuyor istediğiğm şu led1 yak led1 sondur ama led2 yanarken led1 sondur kodu bu yuden koydum ordaki örneklr karışık pin1 ler için
mümkünse yukardaki örneğe göre örnek berilmesi bende deniyorum kitimde saygılarımla
@ErsinErce hocam ;) demiş
~& kullanmak gerekiyor.
Yani olaya biraz mantıksal yaklaşmak lazım. Bir pini set etmek için 1 kullanıyorsan reset etmek(sıfırlamak) için de 0 kullanırsın.
Yani diğer pinlerin durumunu bozmadan porta öyle bir işlem yapacaksın ki sadece istediğin pin 0 olacak.
Bu işleme
maskeleme deniliyor. Forumda aratırsan birçok yardımcı konu ve örnek bulabilirsin.
Burada önemli olan
~ ve
& operatörlerini iyi anlayabilmek ;)
sayım emektar ben burda msp serisine yeni başlayan birisi olarak ve yeni başlayanlara bir nebze yol aça bilmek için konulara girdim ~ işaretini biliyorum neden sen sadece copy paste yapıyorsun bunu yapınca tüm ledler yanıyor ben burda p2 lerin peşindeyim yoksa karaşimşek yapma değil amacım....
ben yukarda son şekli ile çalışan kaynak kodu koydum denemeden etmeden geliyor sanırım millet ben her kodu deniyorum kitim var ve deniyorum lütfen olaylara birazda benm tarafımdan bakınız demekki olmuyor ki sürekli yazıyorum son çalışankod yukarda bir zahmet deneme şansınız varsa denyin ben dedim gibi sürekli deniyorum kod olarak yardımcı olurmusun operatorleri denedim olmuyor yukardaki çalışan koda istinaden kod yardımı taleb ediyorum teşekkür ederim
P2OUT &= (~BIT2);
Her kodu denemişsin ama galiba bunu unutmuşsun, işin mantığını anlatmaya çalışıyorum. Mantığını bilmeden ne kadar kod denersen dene.
Yukarıda ~ve & işaretini araştır denilmesinin sebebi de bu aslında.
Kolay gelsin.
emektar bitanesin valla sağolasın inan denemedim kod kalmadı teşekkür ederim şimdi deniyorum ben amacım kimseyi kırmak değil ama bilmeyen ler için her kod değerli çünkü bir sürü kodlaral uğraşıyorum kafa artık durdu durma noktasına geldi desem ama desteklerinden dolayı teşekkür ediyorum hemen deniyorumm
kodları denedim ledler sönüor fakat ledlerde çok az pırıltılar var 330 ohm dirençle bağlılar pin1 lerde yapılan ld kapatmalarda her hangi bir pırıltı yok ledler tam sönüyor p2 lerde bu durum pırıltı şeklinde kalıyor nedeni ne bilmiyorum 330 ohm direçlerle yaktığım halde ledlere enerji geliyor çok azda olsa osilator şeklinde sonuçta ld kapatma olayı tamam.. texsası öğrenmek lazım farklı bir entegre
ŞU AN İTİBARİ İLE SORUN ÇÖZÜLDÜ !!!!!!!!! gerekli topraklama da yapılınca hiç bir sorun kalmadı forma ve yardımalrını ve sabırlarını esirgemeyen herkese sonsuz teşekkürlerimi sunuyorum inanın hiç çekinmeden sorunlarımız sorularımızı çözümleye bileceğimiz bri platform kısa sürede bıu derece yardım aldığım bir forma rastlamadım