Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Texas Instruments => MSP430 Serisi => Konuyu başlatan: atioky_216 - 20 Nisan 2011, 22:56:07

Başlık: arkadaşlar bu kodda nerede yanlıslık var
Gönderen: atioky_216 - 20 Nisan 2011, 22:56:07
#include "msp430g2231.h" // MSP430G2231 Kütüphanemiz
int main( void ) // Ana Fonksiyon
{
int i,a;
int sayilar1[] = {0x01,0x02,0x04,0x08};
int sayilar2[] = {0x08,0x04,0x02,0x01};
WDTCTL = WDTPW + WDTHOLD; // WDT Kapalı
P1DIR = 0x0F; // Pic kullananlar bilir Tiris Komutu, yani hangi bitin giriş hangi bitin çıkış olacağını belirtir. 0xFF = 11111111
while(1) // Sonsuz Döngü Program sürekli tekrar edicek
{
for(a = 0; a < 10;a++){
for(i = 0; i < 4;i++){
P1OUT = sayilar1;
__delay_cycles(100000);
P1OUT = 0x00;
__delay_cycles(100000);
}
}
for(a = 0; a < 10;a++){
for(i = 0; i < 4;i++){
P1OUT = sayilar2;
__delay_cycles(100000);
P1OUT = 0x00;
__delay_cycles(100000);
}
}
}
}

Ha ha bir süre Cye ara vermiştimMATLAB kullanıyordum harıl harıl yaptığım yanlışa bakın

MATLAB  for  i=1: .1: 100      ;// i=1 den .1 artımla 100e gel

C            for(i=0;i<101;i++)  //  bu i lerin konumunu karıştırmışım.
Başlık: Ynt: arkadaşlar bu kodda nerede yanlıslık var
Gönderen: konjuge - 24 Nisan 2011, 18:37:15
çıkışlara verdiğin sayilar1 ve sayilar2 için i değişkenini kullanmayı unutmuşsun
Başlık: Ynt: arkadaşlar bu kodda nerede yanlıslık var
Gönderen: scaemteitn - 25 Nisan 2011, 22:47:54
hımm evet

P1OUT = sayilar1 ;   //şeklinde olması gerekli.
Başlık: arkadaslar çözmüştüm yanlışlığı sağolun
Gönderen: atioky_216 - 27 Nisan 2011, 00:49:10
Kodun son çalışan hali  ::)

#include "msp430g2231.h" // MSP430G2231 Kütüphanemiz

int main( void ) // Ana Fonksiyon
{
int i,a;
int sayilar1[] = {0x01,0x02,0x04,0x08};
int sayilar2[] = {0x04,0x02,0x01,0x08};
//Binary yazmanın bir şeyi değişrimeyeceğini belirtmek için bu şekilde de yazdım aynı hexa değerleri
WDTCTL = WDTPW + WDTHOLD; // WDT Kapalı
P1DIR = 0x0F; // Pic kullananlar bilir Tiris Komutu, yani hangi bitin giriş hangi bitin çıkış olacağını belirtir. 0xFF = 00001111
while(1) // Sonsuz Döngü Program sürekli tekrar edicek
{
for(a = 0; a < 3;a++){
 
for(i = 0; i < 4;i++){
P1OUT = sayilar1;
__delay_cycles(100000); // .1 sn geciktirdim 1Mz/10^5 = 10Hz
P1OUT = 0x00;
__delay_cycles(100000); // .1 sn geciktirdim 1Mz/10^5 = 10Hz
}

}
for(a = 0; a <3;a++){
for(i = 0; i < 4;i++){
P1OUT = sayilar2;
__delay_cycles(100000); // .1 sn geciktirdim 1Mz/10^5 = 10Hz
P1OUT = 0x00;
__delay_cycles(100000); // .1 sn geciktirdim 1Mz/10^5 = 10Hz
}
}
}
}
Başlık: Ynt: arkadaşlar bu kodda nerede yanlıslık var
Gönderen: serdarünal - 27 Nisan 2011, 09:17:18
evet s ayilar1 ve sayilar2 için i değişkenini kullanman lazım.. ;)
Başlık: Ynt: arkadaşlar bu kodda nerede yanlıslık var
Gönderen: atioky_216 - 28 Nisan 2011, 21:24:50
ya aslında çalıştıralı baya oldu.Onda değişkeni vardı ama buraya yapıştırıren kaybolmuş.Herhalde eskisini yapıstırmısım.Sorun cozuldu.Tesekkur ederim