Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all articles
Browse latest Browse all 22466

CCS/MSP430FR5969: msp430fr5969--problem Regarding transmitting data using Software Uart using timers in normal gpio pin.

$
0
0

Part Number:MSP430FR5969

Tool/software: Code Composer Studio

Hello everyone , I tried software uart using timers on P4.5 Pin . I am just transmitting single character to controller , but no resposnse in hyper terminal. its 9600 baud rate. Please report any mistakes or changes.

.#include"driverlib.h"
#define TX_PIN BIT5 //P4.5, XOUT on Launchpad
#define BIT_TIME 104 //0x680 for 9600;

uint8_t buff_Tx[64];
uint8_t *ptr_Tx;
uint8_t bitCount,flag=0;
uint16_t TEST_BUFF=0x00,TXByte;
uint32_t clock=0;
void initIO(void);
void initTA1(void);
void uartTx(uint8_t byte);
void main()
{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT
PM5CTL0 &= ~LOCKLPM5;
clock=CS_getSMCLK();
__bis_SR_register(GIE);
initIO();
while(1)
{
uartTx(3);
}
}
void initIO(void)
{

P4SEL0 |= TX_PIN;
P4OUT |= BIT5;
P4DIR |= TX_PIN;
}
void uartTx(uint8_t byte)
{
TXByte = byte;
bitCount = 0xA; // Load Bit counter, 8 bits + ST/SP
TXByte |= 0x100; // Add stop bit to TXByte (which is logical 1)//txbyte=0001 0000 0000
TXByte = TXByte << 1; // Add start bit (which is logical 0)//0010 0000 0000
initTA1();
}
void initTA1(void)
{
while (TA0CCTL0 & CCIE)
{
; // wait for previous xmit to finish
}
TA0CCR0 = TA0R; // resync with current TIMERA counter
TA0CCR0 += BIT_TIME; // set next start bit edge time
TA0CTL = TASSEL_2 + MC_2;
TA0CCTL0 = OUT | CCIE|CCIS0; // set TX_PIN HIGH on EQU0 and re-enable interrupts
}

// Timer A0 interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer0_A0_ISR (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(TIMER0_A0_VECTOR))) Timer0_A0_ISR (void)
#else
#error Compiler not supported!
#endif
{
TA0CCR0 += BIT_TIME; // Add Offset to TA0CCR0
flag=(TXByte & 0x01);
if (flag==1)
{
(P4OUT |= TX_PIN);
}
else
{
(P4OUT &= ~TX_PIN);
}
TXByte = TXByte >> 1;
bitCount --;
if(bitCount==1)
{
TA0CCR0=0;
TA0CCTL0 &= ~CCIE;
}
}


Viewing all articles
Browse latest Browse all 22466

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>