• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

msp430f5310 microcontroller

kamalnath

New Member
i had attempted to do serial communication in msp430f5310.I coudnt see the output for it since the program shows no error.Kindly,give solution for this.
C:
#program
#include <stdio.h>

#include<msp430f5310>

/*

* main.c

*/

int main ( void )

{



unsigned int i;

WDTCTL = WDTPW | WDTHOLD; // stop watchdog  timer

P4SEL = BIT4;

P4SEL = BIT5;

UCA1CTL1 = UCSWRST;

UCA1CTL1 = UCSSEL_1;

UCA1BR0=8;

UCA1BR1=0;

UCA1MCTL = UCBRS_0 | UCBRF_13 | UCOS16;

UCA1CTL1 &= ~UCSWRST;

P4DIR = 0XFF;

while

{

UCA1TXBUF = 'a' ;

P4OUT ^= 0XFF;

for(i=0;i<5000;i++)

{



}

}

}
 
Last edited by a moderator:

Pommie

Well-Known Member
Most Helpful Member
If you expect help then at least learn how to post (and format) code.

Type [code] before your code and [/code] after. Also, ensure your indenting is correct on your code and add some comments.

Mike.
 

kamalnath

New Member
im doing the codes in code composer studio software.So,kindly help me on that serial communicaton in msp430f5310.I coudnt understand how i should make the left arm ambidextrous.
 
Last edited:

kamalnath

New Member
I had attempted to do serial communication in msp430f5310.I coudnt see the output for it since the program shows no error. Kindly, give solution for this.
C:
#include <stdio.h>

#include<msp430f5310>

/*

* main.c

*/

int main ( void )

{



unsigned long i;

WDTCTL = WDTPW | WDTHOLD; // stop watchdog  timer

P4SEL = BIT4; //SELECTING THE PORT 4 .4 AS TX

P4SEL = BIT5;// SELECTING THE PORT 4.5 AS RX

UCA1CTL1 = UCSWRST; // RESET BEFORE THE PROCESS

UCA1CTL1 = UCSSEL_1;  //SELECTION OF CLK SPEED ACLK=32.768 HZ


UCA1BR0=8; //BAUD RATE GENERATION

UCA1BR1=0; // BAUD RATE SELECTION

UCA1MCTL = UCBRS_0 | UCBRF_13 | UCOS16;  // MODULATION CONTROL AND OVERSAMPLING.

UCA1CTL1 &= ~UCSWRST; INITIALISING USART STATE MACHINE.

P1DIR = 0XFF; // ENABLING THE PORT 4 PINS
P1OUT =0XFF; // MAKING THE OUTPUT FOR LED
while

{

UCA1TXBUF = 'a' ; //TRANSMITTING THE CHARACTER 'a' through transmit buffer

P1OUT ^= 0XFF; //  BITWISING OR THE OUTPUT in loop.

for(i=0;i<5000;i++) // LOOP

{



}

}

}
.


SO,MY WAY OF GETTING OUTPUT IS THAT WHEN CHARACTER 'a' is transmitted,led should blink in provided for loop.But i coudnt get the output.Plz anyone help on this.
 
Last edited by a moderator:

rjenkinsgb

Well-Known Member
Most Helpful Member
I'm not familiar with that CPU, but this part looks strange:

Code:
P4SEL = BIT4; //SELECTING THE PORT 4 .4 AS TX

P4SEL = BIT5;// SELECTING THE PORT 4.5 AS RX
You are overwriting (so replacing) the first value with the second, so only the RX bit is set?

If you are trying to set both bits, try

Code:
P4SEL = BIT4 | BIT5; //SELECTING THE PORT 4 .4 AS TX AND 4.5 AS RX
That's OR'ing the two bits together, then transferring the combined value to the P4SEL register.
 

rjenkinsgb

Well-Known Member
Most Helpful Member
I don't know - I know nothing about that CPU, it's just the method of controlling bits in that register that seems wrong, and would have been disabling the "TX" bit.
 

rjenkinsgb

Well-Known Member
Most Helpful Member
How many times do I need to repeat it?

With your original code, the "TX" pin control bit was disabled!
The UART output could not work.

Have you changed the code as I suggested?

(And please use the "code" insert, in the pulldown between the smileys and camera icons, to make things more readable when adding parts of a program).
 

Ian Rogers

User Extraordinaire
Forum Supporter
Most Helpful Member
Okay.. Since no-one here utilises THAT chip you will get very little help.

Ti said:
NOTE:Initializing or reconfiguring the USCI module The recommended USC Iinitialization/reconfiguration process is:
1. Set UCSWRST(BIS.B#UCSWRST,&UCAxCTL1).
2. Initialize all USCI registers with UCSWRST= 1 (including UCAxCTL1).
3. Configure ports.
4. Clear UCSWRST via software (BIC.B#UCSWRST,&UCAxCTL1).
5. Enable interrupts(optional)via UCRXIEand/orUCTXIE.
Read this first https://www.ti.com/lit/ug/slau410f/...32022&ref_url=https%3A%2F%2Fwww.google.com%2F
 

Ian Rogers

User Extraordinaire
Forum Supporter
Most Helpful Member

Pommie

Well-Known Member
Most Helpful Member
I just referred all the links and datasheets but there is no improvement. Suggest some more ideas guys plz
Pick a different micro that people know. These request are normally due to some lecturer at a uni picking some obscure device so people can't get answers here. Probably not a bad thing.

Mike.
Edit, you did however get help above which you seem to have completely ignored.
 

rjenkinsgb

Well-Known Member
Most Helpful Member
Suggest some more ideas guys plz
You still have not answered the question:
Have you changed the program as I suggested and tried it again?

There is no point anyone answering if you do not respond to suggestions made.
 

Latest threads

EE World Online Articles

Loading
Top