Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Texas Instruments => MSP430 Serisi => Konuyu başlatan: Firzen - 15 Ocak 2013, 00:11:31

Başlık: MSP430 UART MODULE?
Gönderen: Firzen - 15 Ocak 2013, 00:11:31
Merhaba Arkadaşlar;
MSP430 ile Xbee denemesi yapmak istiyorum bunun için msp430G2553 ile yapmak istedim çünkü bundan Direk kütüphane içinde UART kısmı varmış internetten okudum.Hatta koduda paylaşıyorum birisi bana bu konuda yardımcı olabilir mi acaba?Normalde ingilizcem çok çok iyidir ama ben kodu anlamadım.Özellikle kod konusunda yardımcı olursanız sevinirim.

#include <msp430g2553.h>

////////////////Defines////////////////

#define Green_LED BIT6
#define Button BIT3
#define Error BIT0

////////////////Function Protos////////////////

void TX(char *tx_message);

////////////////Main Program////////////////

void main(void)
{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz
DCOCTL = CALDCO_1MHZ;

////////////////USCI setup////////////////

P1SEL = BIT1 + BIT2; // Set P1.1 to RXD and P1.2 to TXD
P1SEL2 = BIT1 + BIT2; //

UCA0CTL1 |= UCSSEL_2; // Have USCI use SMCLK AKA 1MHz main CLK

UCA0BR0 = 104; // Baud: 9600, N= CLK/Baud, N= 10^6 / 9600

UCA0BR1 = 0; // Set upper half of baud select to 0

UCA0MCTL = UCBRS_1; // Modulation UCBRSx = 1

UCA0CTL1 &= ~UCSWRST; // Start USCI

////////////////General GPIO Defines////////////////

P1DIR |= (Green_LED); //Define GPIOs as outputs else GPIOs are inputs

P1DIR &= ~(Button); //Define Button as input. Line is not necessary but is for readibility

P1OUT = 0; //All Outputs off except for Green_LED

////////////////Main Loop////////////////

while(1)
{

if( (BIT3 & P1IN)==0)
{

P1OUT ^= Green_LED; // Toggle Green LED

TX("Hello World!!!"); //Transmit Message to Terminal

TX("\r\n"); //Transmit Line Break

__delay_cycles(250000); //Software delay to add debounce

}

} // End While

} // End Main Program

////////////////Functions////////////////

void TX(char *tx_message)
{

unsigned int i=0; //Define end of string loop int
char *message; // message variable
unsigned int message_num; // define ascii int version variable
message = tx_message; // move tx_message into message

while(1)
{

if(message[i]==0) // If end of input string is reached, break loop.
{
break;
}

message_num = (int)message[i]; //Cast string char into a int variable

UCA0TXBUF = message_num; // write INT to TX buffer

i++; // increase string index

__delay_cycles(10000); //transmission delay

if(i>50) //prevent infinite transmit
{
P1OUT |= Error;
break;
}

} // End TX Main While Loop


} // End TX Function
Başlık: Ynt: MSP430 UART MODULE?
Gönderen: mehmet - 15 Ocak 2013, 01:00:24
http://connect.cizgi-tagem.org/l31548631/ (http://connect.cizgi-tagem.org/l31548631/) buradaki
dersi izlerseniz daha rahat anlayacağınızdan
eminim.
Ayrıca http://www.mcu-turkey.com/msp430-launchpad-msp430g2553-donanimsal-uart-kullanimi/ (http://www.mcu-turkey.com/msp430-launchpad-msp430g2553-donanimsal-uart-kullanimi/)
http://www.mcu-turkey.com/cc2530-mini-znp-kit-zigbee-ornek-uart-uygulamasi/ (http://www.mcu-turkey.com/cc2530-mini-znp-kit-zigbee-ornek-uart-uygulamasi/)
buraları da inceleyiniz.

Saygılar...

Not: Dersleri izleyebilmek için http://www.cizgi-tagem.org (http://www.cizgi-tagem.org)
sitesine üye olmanız gerekmekte.(Pişman olmazsınız. :P)
Başlık: Ynt: MSP430 UART MODULE?
Gönderen: Firzen - 15 Ocak 2013, 02:41:11
Bende bu mesajı yazdıktan 10 dk sonra çizgitagemde buldum ve izlemeye başlamıştım :)
sağolun yinede :D