2 listing off ; kein Listing
\81ber diesen File
4 ;****************************************************************************
6 ;* AS 1.41 - Datei REGMSP.INC *
8 ;* Sinn : enth
\84lt Makro- und Registerdefinitionen f
\81r den MSP430 *
10 ;* letzte
\8enderungen : 2002-01-11 *
12 ;****************************************************************************
13 ;* $Id: regmsp.inc,v 1.3 2008/01/02 22:32:21 alfred Exp $
14 ;****************************************************************************
15 ;* $Log: regmsp.inc,v $
16 ;* Revision 1.3 2008/01/02 22:32:21 alfred
17 ;* - better heap checking for DOS target
19 ;* Revision 1.2 2007/12/31 13:23:53 alfred
20 ;* - added some bit definitions
22 ;****************************************************************************
24 ifndef regmspinc ; verhindert Mehrfacheinbindung
28 if (MOMCPUNAME<>"MSP430")
29 fatal "Falscher Prozessortyp eingestellt: nur MSP430 erlaubt!"
33 message "MSP430-Register+Befehlsdefinitionen (C) 1996/2007 Alfred Arnold, Jose Da Silva"
36 ;----------------------------------------------------------------------------
67 ;----------------------------------------------------------------------------
82 ;----------------------------------------------------------------------------
121 ;----------------------------------------------------------------------------
137 .word 04303h ; den symbolischen Befehl w
\81rde AS zur
\81ckweisen
156 ;----------------------------------------------------------------------------
157 ; General Memory Layout
158 ; ----------------------
160 ; 0000 - 000f : Special Function Registers
161 ; 0010 - 00ff : 8bit Peripheral Modules
162 ; 0100 - 01ff : 16bit Peripheral Modules
163 ; 0200 - .... : RAM Memory
164 ; .... - ffdf : Flash Memory
165 ; ffe0 - ffff : Interrupt Vector Table
167 ;----------------------------------------------------------------------------
169 ;----------------------------------------------------------------------------
172 SCG1 equ 128 ; System Clock Generator 1. 1=turn_off_SMCLK
173 SCG0 equ 64 ; System Clock Generator 0. 1=turn_off_DCO
174 OSCOFF equ 32 ; Oscillator Off. 1=turn_off_LFXT1CLK
175 CPUOFF equ 16 ; CPU Off. 1=turn_off_CPU (SR)
176 GIE equ 8 ; General Interrupt Enable (SR)
178 ;----------------------------------------------------------------------------
179 ; Special Function Register of MSP430x1xx Family, Byte Access
181 IE1 equ 000h ; Interrupt Enable
182 ACCVIE equ 32 ; flash-access interrupt enable (IE1.5)
183 NMIIE equ 16 ; NMI enable (IE1.4)
184 OFIE equ 2 ; Osc-fault-interrupt enable (IE1.1)
185 WDTIE equ 1 ; Watchdog interrupt enable (IE1.0)
187 IFG1 equ 002h ; Interrupt Flag
188 NMIIFG equ 16 ; set via !RST/NMI pin (IFG1.4)
189 RSTIFG equ 8 ; External reset interrupt flag (IFG1.3)
190 PORIFG equ 4 ; Power-on-reset interrupt flag (IFG1.2)
191 OFIFG equ 2 ; flag on oscillator fault (IFG1.1)
192 WDTIFG equ 1 ; watchdog or security key violation (IFG1.0)
194 ME1 equ 004h ; Modul Enable
196 ;MSP43012xx devices only, only for MSP43012xx devices.
199 UTXIE0 equ 2 ; USART0 transmit int-enable bit (IE2.2)
200 URXIE0 equ 1 ; USART0 receive int-enable bit (IE2.1)
203 UTXIFG0 equ 2 ; USART0 and SPI transmit flag (IFG2.1)
204 URXIFG0 equ 1 ; USART0 and SPI receive flag (IFG2.0)
207 UTXE0 equ 2 ; USART0 transmit enable bit (ME2.1)
208 URXE0 equ 1 ; USART0 receive enable bit (ME2.0)
209 USPIE0 equ 1 ; SPI transmit+receive enable (ME2.0)
211 ;----------------------------------------------------------------------------
212 ; Digital I/O, Byte Access
214 P0IN equ 010h ; Leseregister (Pinzustand)
215 P0OUT equ 011h ; Schreibregister (Latches)
216 P0DIR equ 012h ; Richtungsregister
217 P0IFG equ 013h ; Interrupt-Flags
218 P0IES equ 014h ; Interrupf-Flankenwahl
219 P0IE equ 015h ; Interrupt-Freigaben
221 P3IN equ 018h ; Input Register
222 P3OUT equ 019h ; Output Register
223 P3DIR equ 01Ah ; Direction Register
224 P3SEL equ 01Bh ; Function select
226 P4IN equ 01Ch ; Input Register
227 P4OUT equ 01Dh ; Output Register
228 P4DIR equ 01Eh ; Direction Register
229 P4SEL equ 01Fh ; Function select
231 P1IN equ 020h ; Input Register
232 P1OUT equ 021h ; Output Register
233 P1DIR equ 022h ; Direction Register
234 P1IFG equ 023h ; Interrupt Flags
235 P1IES equ 024h ; Interrupt Edge select
236 P1IE equ 025h ; Interrupt enable
237 P1SEL equ 026h ; Function select
239 P2IN equ 028h ; Input Register
240 P2OUT equ 029h ; Output Register
241 P2DIR equ 02Ah ; Direction Register
242 P2IFG equ 02Bh ; Interrupt Flags
243 P2IES equ 02Ch ; Interrupt Edge select
244 P2IE equ 02Dh ; Interrupt enable
245 P2SEL equ 02Eh ; Function select
247 P5IN equ 030h ; Input Register
248 P5OUT equ 031h ; Output Register
249 P5DIR equ 032h ; Direction Register
250 P5SEL equ 033h ; Function select
252 P6IN equ 034h ; Input Register
253 P6OUT equ 035h ; Output Register
254 P6DIR equ 036h ; Direction Register
255 P6SEL equ 037h ; Function select
257 ;----------------------------------------------------------------------------
260 LCDCTL equ 030h ; Steuerung
261 LCD_Start equ 031h ; Startadresse
262 LCD_Stop equ 03fh ; Endadresse
263 __TMP set 1 ; Einzeldefinitionen
265 LCD{"\{__TMP}"} equ 030h+__TMP
269 LCD1{"\{__TMP-10}"} equ 030h+__TMP
272 ;----------------------------------------------------------------------------
275 BTCTL equ 040h ; Basis-Steuerregister Timer 1
278 TCPLD equ 043h ; Vorladewert
279 TCDAT equ 044h ; Z
\84hlwert
281 BTCNT1 equ 046h ; Z
\84hlregister
284 TPCTL equ 04Bh ; Timer/Port Steuerregister
285 TPCNT1 equ 04Ch ; Z
\84hlregister
287 TPD equ 04Eh ; Datenregister
288 TPE equ 04Fh ; Freigaberegister
290 ;----------------------------------------------------------------------------
293 SCFI0 equ 050h ; Integrator
295 SCFQCTL equ 052h ; Multiplikator Quarzfrequenz
296 CBCTL equ 053h ; Puffersteuerung
298 ;----------------------------------------------------------------------------
299 ; EPROM Control Register, Byte Access
301 EPCTL equ 054h ; EPROM-Steuerung
303 ;----------------------------------------------------------------------------
304 ; Basic Clock Registers, Byte Access
307 DCO2 equ 128 ;DCO freq select, see RSELx (DCOCTL.7)
308 DCO1 equ 64 ; (DCOCTL.6)
309 DCO0 equ 32 ; (DCOCTL.5)
310 MOD4 equ 16 ;Modulator selection (DCOCTL.4)
311 MOD3 equ 8 ; (DCOCTL.3)
312 MOD2 equ 4 ; (DCOCTL.2)
313 MOD1 equ 2 ; (DCOCTL.1)
314 MOD0 equ 1 ; (DCOCTL.0)
317 XT2OFF equ 128 ; XT2 off. Turn off XT2 oscil (BCSCTL1.7)
318 XTS equ 64 ; LFXT1 mode. 0=LowFreq,1=HiFreq (BCSCTL1.6)
319 DIVA1 equ 32 ; Divider for ACLK. (BCSCTL1.5)
320 DIVA0 equ 16 ; 00=/1, 01=/2, 10=/4, 11=/8 (BCSCTL1.4)
321 XT5V equ 8 ; Unused. Always reset to zero (BCSCTL1.3)
322 RSEL2 equ 4 ; Resistor select. internal R (BCSCTL1.2)
323 RSEL1 equ 2 ; lowest R=0 (BCSCTL1.1)
324 RSEL0 equ 1 ; (BCSCTL1.0)
325 RSEL_7 equ 7 ; (BCSCTL1.0-2)
326 RSEL_6 equ 6 ; (BCSCTL1.0-2)
327 RSEL_5 equ 5 ; (BCSCTL1.0-2)
328 RSEL_4 equ 4 ; (BCSCTL1.0-2)
329 RSEL_3 equ 3 ; (BCSCTL1.0-2)
330 RSEL_2 equ 2 ; (BCSCTL1.0-2)
331 RSEL_1 equ 1 ; (BCSCTL1.0-2)
332 RSEL_0 equ 0 ; (BCSCTL1.0-2)
335 SELM_3 equ 128+64 ; Select MCLK. 11=LFXT1CLK (BCSCTL2.6.7)
336 SELM_2 equ 128 ; MCLK 10=XT2CLK or LFXT1CLK (BCSCTL2.6.7)
337 SELM_1 equ 64 ; Select MCLK. 01=DCOCLK (BCSCTL2.6.7)
338 SELM_0 equ 0 ; Select MCLK. 00=DCOCLK (BCSCTL2.6.7)
339 SELM1 equ 128 ; Select MCLK. 00=01=DCOCLK (BCSCTL2.7)
340 SELM0 equ 64 ; 10=XT2CLK or LFXT1CLK=11 (BCSCTL2.6)
341 DIVM1 equ 32 ; Divider for MCLK, (BCSCTL2.5)
342 DIVM0 equ 16 ; 00=/1, 01=/2, 10=/4, 11=/8 (BCSCTL2.4)
343 SELS equ 8 ; Select SMCLK 0=DCOCLK,1=XT2CLK (BCSCTL2.3)
344 DIVS1 equ 4 ; Divider for SMCLK, (BCSCTL2.2)
345 DIVS0 equ 2 ; 00=/1, 01=/2, 10=/4, 11=/8 (BCSCTL2.1)
346 DCOR equ 1 ; DCO resistor. 0=intern,1=extn (BCSCTL2.0)
348 ;----------------------------------------------------------------------------
349 ; Comparator_A Registers, Byte Access
351 CACTL1 equ 059h ; Comparator A control register 1
352 CACTL2 equ 05Ah ; Comparator A control register 2
353 CAPD equ 05Bh ; Comparator A port disable
355 ;----------------------------------------------------------------------------
358 PWMCTL equ 058h ; Z
\84hlwert
359 PWMDTB equ 059h ; Pulsweite (Puffer)
360 PWMDTR equ 05Ah ; Pulsweite
361 PWMCNT equ 05Bh ; Steuerung
363 ;----------------------------------------------------------------------------
375 ;----------------------------------------------------------------------------
387 ;----------------------------------------------------------------------------
388 ; USART Register Bits
390 FE equ 128 ; Framing error (low stop bit) (UxRCTL.7)
391 PE equ 64 ; Parity error (PE=0 if PENA=0) (UxRCTL.6)
392 OE equ 32 ; Overrun error (buffer overrun) (UxRCTL.5)
393 BRK equ 16 ; Break detect flag (UxRCTL.4)
394 URXEIE equ 8 ; Rec err chars sets URXIFG) (UxRCTL.3)
395 URXWIE equ 4 ; Rec wakeup int-enable (URXIFG) (UxRCTL.2)
396 RXWAKE equ 2 ; Rec wakeup flag (UxRCTL.1)
397 RXERR equ 1 ; Rec error flag (FE,PE,OE,BRK) (UxRCTL.0)
399 CKPL equ 64 ; Clock polarity 0=UCLKI=UCLK (UxTCTL.6)
400 SSEL1 equ 32 ; Source 00=UCLKI, 01=ACLK (UxTCTL.5)
401 SSEL0 equ 16 ; Source 10=SMCLKI, 11=SMCLK (UxTCTL.4)
402 URXSE equ 8 ; Receive start-edge, 1=enabled (UxTCTL.3)
403 TXWAKE equ 4 ; Transmitter wake, 0=data,1=adr (UxTCTL.2)
404 TXEPT equ 1 ; Transmitter empty flag (UxTCTL.0)
406 PENA equ 128 ; Parity enable, 1=enabled (UxCTL.7)
407 PEV equ 64 ; Parity select, 1=even,0=odd (UxCTL.6)
408 SPB equ 32 ; Stop bit, 0=1stop,1=2stop (UxCTL.5)
409 CHAR equ 16 ; Char length, 0=7bit,1=8bit (UxCTL.4)
410 LISTEN equ 8 ; Listen enable, 1=loopback->RX (UxCTL.3)
411 SYNC equ 4 ; synch mode, 0=USART,1=SPI (UxCTL.2)
412 MM equ 2 ; Multiprocessor, 1=use_protocol (UxCTL.1)
413 SWRST equ 1 ; software reset, 1=held_reset (UxCTL.0)
415 ;----------------------------------------------------------------------------
435 ;----------------------------------------------------------------------------
439 __TMP set 1 ; Einzeldefinitionen
441 LCDmemory{"\{__TMP}"} equ LCDC+__TMP
445 ;----------------------------------------------------------------------------
446 ; A/D-Wandler, Word Access
448 AIN equ 0110h ; Eingaberegister
449 AEN equ 0112h ; Eingabefreigaben
450 ACTL equ 0114h ; Steuerung
451 ADAT equ 0118h ; Daten
453 ;----------------------------------------------------------------------------
454 ; Timer_B Interrupt Vector, Word Access
458 ;----------------------------------------------------------------------------
459 ; Watchdog/Timer, Word Access
462 WDTHOLD equ 128 ; Watchdog timer hold. 1=stopped (WDTCTL.6)
463 WDTNMIES equ 64 ; NMI edge select 0=rise,1=fall (WDTCTL.6)
464 WDTNMI equ 32 ; NMI pin select, 0=!reset,1=NMI (WDTCTL.5)
465 WDTTMSEL equ 16 ; mode select 0=watchdog,1=timer (WDTCTL.4)
466 WDTCNTCL equ 8 ; Counter clear, 1=clear_counter (WDTCTL.3)
467 WDTSSEL equ 4 ; Source select, 0=SMCLK,1=ACLK (WDTCTL.2)
468 WDTIS1 equ 2 ; Watchdog timer interval select (WDTCTL.1)
469 WDTIS0 equ 1 ; 00=32768,01=8192,10=512,11=64 (WDTCTL.0)
471 ;----------------------------------------------------------------------------
472 ; Timer_A Interrupt Vector, Word Access
476 ;----------------------------------------------------------------------------
477 ; Flash Control, Word Access
483 ;----------------------------------------------------------------------------
484 ; Hardware Multiplier, Word Access
486 MPY equ 0130h ; Multiply unsigned
487 MPYS equ 0132h ; Multiply signed
488 MAC equ 0134h ; MPY+ACC
489 MACS equ 0136h ; MPYS+ACC
490 OP2 equ 0138h ; Second Operand
491 ResLo equ 013Ah ; Result low word
492 ResHi equ 013Ch ; Result high word
493 SumExt equ 013Eh ; Sum extend
495 ;----------------------------------------------------------------------------
496 ; ADC12 high bytes, Word Access
515 ;----------------------------------------------------------------------------
516 ; Timer_A Registers, Word Access
531 ;----------------------------------------------------------------------------
532 ; Timer_B Registers, Word Access
551 ;----------------------------------------------------------------------------
552 ; ADC12 Registers, Byte and Word Access
559 ;----------------------------------------------------------------------------
562 restore ; wieder erlauben