Sign in

username:

password:



Not a member?

Search msp430



Search tips

Subscribe to msp430



Ads

Discussion Groups

Discussion Groups | MSP430 | MSP430F413 Why I am get two START BITS in this TX routine?

The purpose of this group is to foster exchange of information on the Texas Instruments MSP430 family of microcontrollers and related tools. Everyone welcome, all levels of familiarity/expertise.

MSP430F413 Why I am get two START BITS in this TX routine? - neptunetg - Jul 18 15:53:52 2008

Can anyone help me out here?

I've included the entire source code. I'm getting two start bits=20
before my data is shifted out LSB first.

Thank you for any help!
#include "msp430x41x.h"

#define TXData R4
#define BitCnt R5
#define COUNTER R6
#define PREAMBLE R7
#define FLAG R8
#define LEDS R9
#define TABLE_ELEMENT R10
#define TIMEOUT2 R11
#define COUNTTX R12
#define CONFIG R14
#define OFFSET R15
TXD EQU 001h ; TXD on P1.0
Bitime_5 EQU 0055 ; ~ 0.5 bit length
Bitime EQU 0109 ; Conditions for 9600=20
Baud SW UART, SMCLK =3D 1048576
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
ORG 0E000H ; Program Start
RESET
MOV.W #002FEh,SP ; Define stackpointer
CALL #Setup ; Subroutine that=20
initializes registers, interrupts, timers
BSL_CODE

mov.b #055h,TXData ; Send this byte in=20
inifinite loop -ZZZ
INV TXData
CALL #TX_Byte_BSL
MOV.W #014h,PREAMBLE ; Provides 5 ms Delay
MOV.B #1, FLAG
call #Delazy
jmp RESET

Delazy
nop
TST FLAG
JNZ Delazy=09
RET
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
; Basic Timer Interrupt
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96

BT_ISR
DEC.W PREAMBLE ; Counter value used to=20
exact X ms delays
TST PREAMBLE
JNZ END_ISR
DEC.B FLAG
MOV.W #019Ah,PREAMBLE ; Provides 100 ms=20
interrupts
END_ISR
RETI

TX_Byte_BSL ;TX_Byten8
BIC.B #BTIE,&IE2 ; Disable Basic Timer=20
interrupt
BIS.B #TXD,&P1SEL ; P1.0/1 TA0 for TXD/RXD=20
function
MOV.W &TAR,&CCR0 ; Current state of TA=20
counter
ADD.W #Bitime,&CCR0 ; Some time till first=20
bit
MOV.W #8,BitCnt ; Load Bit counter,=20
STOP,even-PARITY BIT,8data,START
MOV.W #OUTMOD0+CCIE,&CCTL0 ; TXD =3D mark =3D idle
TX_Wait_BSL
BIT.W #CCIE,&CCTL0 ; Wait for TX completion
JNZ TX_Wait_BSL ; Wait for TX=20
completion
BIC.B #TXD,&P1SEL ; TURN OFF P1.0/1 TA0=20
for TXD/RXD function
BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
interrupt
RET ; TX Complete

TA0_ISR ; RXTXData Buffer holds UART Data
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96

ADD.W #Bitime,&CCR0 ; Time to next bit
UART_TX
CMP.W #00h,BitCnt ;
JNE TX_Next ; Next bit?
BIC.W #CCIE,&CCTL0 ; All Bits TX or RX,=20
Disable Int.
RETI ;
TX_Next
BIC.W #OUTMOD2,&CCTL0 ; TX Mark
RRA.W TXData ; LSB is shifted to carry
JC TX_Test ; Jump --> bit =3D 1
TX_Space
BIS.W #OUTMOD2,&CCTL0 ; TX Space
TX_Test
DEC.W BitCnt ; All bits sent (or=20
received)?
BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
interrupt
RETI ;

;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
; Delay Subroutine
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96

Delay
CLR COUNTER
Delay1
DEC.W COUNTER
JNZ Delay1
RET

;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
; Setup Subroutine
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96

Setup
SetupWDT MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop Watchdog Timer
SetupFLL BIS.B #XCAP14PF,&FLL_CTL0 ; Configure load caps
SetupTA MOV.W #TASSEL1+MC1,&TACTL ; SMCLK, continous mode
SetupBT MOV.B #BTSSEL+BTIP2+BTIP1+BTIP0,&BTCTL ; ~244us Int.
BIS.B #TXD,&P1DIR ; TXD output on P1
MOV.W #035h,LEDS ; Load "CU" to display=20
on LEDS
BIS.B #001h,&P1DIR ; Setup Port 1.0 as an=20
output. IR LED
BIS.B #004h,&P1DIR ; Setup Port 1.2 as an=20
output. Charge Pump
BIS.B #010h,&P2DIR ; Setup Port 2.4 as an=20
output. Status LED
BIS.B #0FFh,&P3DIR ; Setup Port 3 as an=20
output. LEDS
BIS.B #0FFh,&P6DIR ; Setup Port 6 as an=20
output. LEDS
BIC.B #BIT7,&P1DIR ; Setup Port 1.7 as=20
an input. Test Mode Switch.
BIC.B #00Fh,&P2DIR ; Setup Ports 2.0-3 as=20
an inputs. 2.0 - Program 2.1 - Channel
BIC.B #BIT4,&P2OUT ; Pull P2.4 Low to turn=20
off the LED.
BIS.B #BIT2,&P1OUT ; Turn on Charge Pump=20
for IR LED
BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
interrupt
MOV.W #OUT,&CCTL0 ; TXD Idle as Mark
; BIS.B #TXD,&P1SEL ; P1.0/1 TA0 for=20
TXD/RXD function
CLR CONFIG
clr R15
CLR TABLE_ELEMENT
EINT
RET
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
RSEG INTVEC ; MSP430x41x Interrupt=20
vectors
;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
ORG RESET_VECTOR
RESET_VEC DW RESET ; POR, ext. Reset,=20
Watchdog
ORG TIMERA0_VECTOR ; Timer_A0 Vector
DW TA0_ISR ; Timer_A0 Vector
ORG BASICTIMER_VECTOR ; Basic Timer Vector
DW BT_ISR ; Basic Timer Vector
END

;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )


Re: MSP430F413 Why I am get two START BITS in this TX routine? - old_cow_yellow - Jul 19 21:19:53 2008

Your code may have more problems than two start bits. I think you do
not understand how P1.0 behaves.

Your initialization code sets BIT0 of P1DIR to 1 and that bit remains
1 unchanged. (Your code actually set it twice. This is not necessary,
but does not hurt.) This means P1.0 always acts as an output pin and
that is fine.

Whether P1.0 is high or low is now controlled by either BIT0 of P1OUT
or the OUT bit of TACCTL0 depending on the state of BIT0 of P1SEL.

When BIT0 of P1SEL is 0, BIT0 of P1OUT controls the output at P1.0.
Your code never sets or clears P1OUT (and POR/PUC does not set or
clear it either.) Thus when your code clears BIT0 of P1SEL, you do not
know whether P1.0 is a mark or a space. This is not cool.

When BIT0 of P1SEL is 1, OUT bit of TACCTL0 controls the output at
P1.0. You can use the CPU to change this bit directly. But, in
addition, the CPU can set up the TA module to change this bit
automatically and precisely at a specific TAR count. If the OUTMODx
bits of TACCRL0 are 001, OUT bit (and consequently P1.0) will be Set.
If the OUTMODx bits of TACCRL0 are 101, OUT bit (and consequently
P1.0) will be Reset. The actual Set/Reset action takes place when TAR
counts (up or down) and matches TACCR0. When done correctly, this
feature of the TA module gives more precise timing of the output
waveform as compared with doing it directly with the CPU to change
BIT0 of P1OUT or OUT bit of TACCRL0. See, for example, the code sample
"fet410_ta_uart9600.s43" in TI SLAC016F.ZIP
=20
Another potential problem is the crystal oscillator startup and FLL+
lock time. I think within the first second or so after power up or
reset, you are not going to get 9600 b/s.=20=20

--- In m...@yahoogroups.com, "neptunetg" wrote:
>
> Can anyone help me out here?
>=20
> I've included the entire source code. I'm getting two start bits=20
> before my data is shifted out LSB first.
>=20
> Thank you for any help!
>=20
>=20
> #include "msp430x41x.h"
>=20
> #define TXData R4
> #define BitCnt R5
> #define COUNTER R6
> #define PREAMBLE R7
> #define FLAG R8
> #define LEDS R9
> #define TABLE_ELEMENT R10
> #define TIMEOUT2 R11
> #define COUNTTX R12
> #define CONFIG R14
> #define OFFSET R15
> TXD EQU 001h ; TXD on P1.0
> Bitime_5 EQU 0055 ; ~ 0.5 bit length
> Bitime EQU 0109 ; Conditions for 9600=20
> Baud SW UART, SMCLK =3D 1048576
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> ORG 0E000H ; Program Start
> RESET
> MOV.W #002FEh,SP ; Define stackpointer
> CALL #Setup ; Subroutine that=20
> initializes registers, interrupts, timers
> BSL_CODE
>=20
> mov.b #055h,TXData ; Send this byte in=20
> inifinite loop -ZZZ
> INV TXData
> CALL #TX_Byte_BSL
> MOV.W #014h,PREAMBLE ; Provides 5 ms Delay
> MOV.B #1, FLAG
> call #Delazy
> jmp RESET
>=20
> Delazy
> nop
> TST FLAG
> JNZ Delazy=09
> RET
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> ; Basic Timer Interrupt
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
>=20
> BT_ISR
> DEC.W PREAMBLE ; Counter value used to=20
> exact X ms delays
> TST PREAMBLE
> JNZ END_ISR
> DEC.B FLAG
> MOV.W #019Ah,PREAMBLE ; Provides 100 ms=20
> interrupts
> END_ISR
> RETI
>=20
> TX_Byte_BSL ;TX_Byten8
> BIC.B #BTIE,&IE2 ; Disable Basic Timer=20
> interrupt
> BIS.B #TXD,&P1SEL ; P1.0/1 TA0 for TXD/RXD=20
> function
> MOV.W &TAR,&CCR0 ; Current state of TA=20
> counter
> ADD.W #Bitime,&CCR0 ; Some time till first=20
> bit
> MOV.W #8,BitCnt ; Load Bit counter,=20
> STOP,even-PARITY BIT,8data,START
> MOV.W #OUTMOD0+CCIE,&CCTL0 ; TXD =3D mark =3D idle
> TX_Wait_BSL
> BIT.W #CCIE,&CCTL0 ; Wait for TX completion
> JNZ TX_Wait_BSL ; Wait for TX=20
> completion
> BIC.B #TXD,&P1SEL ; TURN OFF P1.0/1 TA0=20
> for TXD/RXD function
> BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
> interrupt
> RET ; TX Complete
>=20
> TA0_ISR ; RXTXData Buffer holds UART Data
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
>=20
> ADD.W #Bitime,&CCR0 ; Time to next bit
> UART_TX
> CMP.W #00h,BitCnt ;
> JNE TX_Next ; Next bit?
> BIC.W #CCIE,&CCTL0 ; All Bits TX or RX,=20
> Disable Int.
> RETI ;
> TX_Next
> BIC.W #OUTMOD2,&CCTL0 ; TX Mark
> RRA.W TXData ; LSB is shifted to carry
> JC TX_Test ; Jump --> bit =3D 1
> TX_Space
> BIS.W #OUTMOD2,&CCTL0 ; TX Space
> TX_Test
> DEC.W BitCnt ; All bits sent (or=20
> received)?
> BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
> interrupt
> RETI ;
>=20
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> ; Delay Subroutine
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
>=20
> Delay
> CLR COUNTER
> Delay1
> DEC.W COUNTER
> JNZ Delay1
> RET
>=20
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> ; Setup Subroutine
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
>=20
> Setup
> SetupWDT MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop Watchdog Timer
> SetupFLL BIS.B #XCAP14PF,&FLL_CTL0 ; Configure load caps
> SetupTA MOV.W #TASSEL1+MC1,&TACTL ; SMCLK, continous mode
> SetupBT MOV.B #BTSSEL+BTIP2+BTIP1+BTIP0,&BTCTL ; ~244us Int.
> BIS.B #TXD,&P1DIR ; TXD output on P1
> MOV.W #035h,LEDS ; Load "CU" to display=20
> on LEDS
> BIS.B #001h,&P1DIR ; Setup Port 1.0 as an=20
> output. IR LED
> BIS.B #004h,&P1DIR ; Setup Port 1.2 as an=20
> output. Charge Pump
> BIS.B #010h,&P2DIR ; Setup Port 2.4 as an=20
> output. Status LED
> BIS.B #0FFh,&P3DIR ; Setup Port 3 as an=20
> output. LEDS
> BIS.B #0FFh,&P6DIR ; Setup Port 6 as an=20
> output. LEDS
> BIC.B #BIT7,&P1DIR ; Setup Port 1.7 as=20
> an input. Test Mode Switch.
> BIC.B #00Fh,&P2DIR ; Setup Ports 2.0-3 as=20
> an inputs. 2.0 - Program 2.1 - Channel
> BIC.B #BIT4,&P2OUT ; Pull P2.4 Low to turn=20
> off the LED.
> BIS.B #BIT2,&P1OUT ; Turn on Charge Pump=20
> for IR LED
> BIS.B #BTIE,&IE2 ; Enable Basic Timer=20
> interrupt
> MOV.W #OUT,&CCTL0 ; TXD Idle as Mark
> ; BIS.B #TXD,&P1SEL ; P1.0/1 TA0 for=20
> TXD/RXD function
> CLR CONFIG
> clr R15
> CLR TABLE_ELEMENT
> EINT
> RET
>=20
>=20
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> RSEG INTVEC ; MSP430x41x Interrupt=20
> vectors
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> ORG RESET_VECTOR
> RESET_VEC DW RESET ; POR, ext. Reset,=20
> Watchdog
> ORG TIMERA0_VECTOR ; Timer_A0 Vector
> DW TA0_ISR ; Timer_A0 Vector
> ORG BASICTIMER_VECTOR ; Basic Timer Vector
> DW BT_ISR ; Basic Timer Vector
> END
>=20
> ;=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
> =96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=
=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96=96
>

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )