?? msp430x24x_uscia0_uart_01_19200.s43
字號:
;*******************************************************************************
; MSP430x24x Demo - USCI_A0, 19200 UART Echo ISR, DCO SMCLK
;
; Description: Echo a received character, RX ISR used. Normal mode is LPM0.
; USCI_A0 RX interrupt triggers TX Echo.
; Baud rate divider with 1MHz = 1MHz/19200 = ~52.1
; ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ = 1MHz
;
; MSP430F249
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P3.4/UCA0TXD|------------>
; | | 19200 - 8N1
; | P3.5/UCA0RXD|<------------
;
; B. Nisarga
; Texas Instruments Inc.
; September 2007
; Built with IAR Embedded Workbench Version: 3.42A
;*******************************************************************************
#include "msp430x24x.h"
;-------------------------------------------------------------------------------
RSEG CSTACK ; Define stack segment
;-------------------------------------------------------------------------------
RSEG CODE ; Assemble to Flash memory
;-------------------------------------------------------------------------------
RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer
StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
CheckCal cmp.b #0FFh,&CALBC1_1MHZ ; Calibration constants erased?
jeq Trap
cmp.b #0FFh,&CALDCO_1MHZ
jne Load
Trap jmp $ ; Trap CPU!!
Load mov.b &CALBC1_1MHZ,&BCSCTL1 ; Set DCO to 1MHz
mov.b &CALDCO_1MHZ,&DCOCTL ;
SetupP3 bis.b #030h,&P3SEL ; P3.4,5 = USCI_A0 TXD/RXD
SetupUSCI0 bis.b #UCSSEL_2,&UCA0CTL1 ; SMCLK
mov.b #36h,&UCA0BR0 ; 1MHz 19200
mov.b #00h,&UCA0BR1 ; 1MHz 19200
mov.b #UCBRS0,&UCA0MCTL ; Modulation UCBRSx = 1
bic.b #UCSWRST,&UCA0CTL1 ; **Initialize USCI state machine**
bis.b #UCA0RXIE,&IE2 ; Enable USCI_A0 RX interrupt
;
Mainloop bis.b #CPUOFF+GIE,SR ; Enter LPM0, interrupts enabled
nop ; Needed only for debugger
;
;-------------------------------------------------------------------------------
USCI0RX_ISR; Echo back RXed character, confirm TX buffer is ready first
;-------------------------------------------------------------------------------
TX0 bit.b #UCA0TXIFG,&IFG2 ; USCI_A0 TX buffer ready?
jz TX0 ; Jump if TX buffer not ready
mov.b &UCA0RXBUF,&UCA0TXBUF ; TX -> RXed character
reti ;
;
;-------------------------------------------------------------------------------
COMMON INTVEC ; Interrupt Vectors
;-------------------------------------------------------------------------------
ORG USCIAB0RX_VECTOR ; USCI0 Rx Vector
DW USCI0RX_ISR ;
ORG RESET_VECTOR ; RESET Vector
DW RESET ;
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -