📄 msp430dayii_democ.asm
字号:
; Archelon URCC C 3.20 2005/05/27
; MSP430 CIF 2005/08/05
; Compiled "C:\Documents and Settings\All Users\Documents\TI Contest\My Entries\RTC Temperature Compensation\Quadravox\MSP430dayII_democ.c" Sun Oct 08 22:14:35 2006
;
.dbgseg dbg_syms
.align 0x2
.long 0x6c69662e
.long 0x65
.long 0x1
.long 0x0
.long 0x167fffe
.long 0x0
.long DBG5
.long 0x0
.long 0x0
.long 0x0
; __builtin__ unsigned short _BIS_SR(unsigned short);
; __builtin__ unsigned short _BIC_SR(unsigned short);
; __builtin__ unsigned short _BIS_SR_IRQ(unsigned short);
; __builtin__ unsigned short _BIC_SR_IRQ(unsigned short);
; __builtin__ void _DINT(void);
; __builtin__ void _EINT(void);
; __builtin__ void _NOP(void);
; __builtin__ void _OPC(const unsigned short op);
; __builtin__ short _SWPB(short);
; __builtin__ long _SWPB_LONG(long);
; __builtin__ float _SWPB_FLOAT(float);
; __builtin__ short __bcd_add_short(short,short);
; __builtin__ long __bcd_add_long(long,long);
; __builtin__ long long __bcd_add_long_long( long long, long long );
; sfrb IE1 = (0x0000) ;
; sfrb IFG1 = (0x0002) ;
; sfrb ME1 = (0x0004) ;
; sfrb IE2 = (0x0001) ;
; sfrb IFG2 = (0x0003) ;
; sfrw WDTCTL = (0x0120) ;
; const sfrb P1IN = (0x0020) ;
; sfrb P1OUT = (0x0021) ;
; sfrb P1DIR = (0x0022) ;
; sfrb P1IFG = (0x0023) ;
; sfrb P1IES = (0x0024) ;
; sfrb P1IE = (0x0025) ;
; sfrb P1SEL = (0x0026) ;
; const sfrb P2IN = (0x0028) ;
; sfrb P2OUT = (0x0029) ;
; sfrb P2DIR = (0x002A) ;
; sfrb P2IFG = (0x002B) ;
; sfrb P2IES = (0x002C) ;
; sfrb P2IE = (0x002D) ;
; sfrb P2SEL = (0x002E) ;
; const sfrb P3IN = (0x0018) ;
; sfrb P3OUT = (0x0019) ;
; sfrb P3DIR = (0x001A) ;
; sfrb P3SEL = (0x001B) ;
; const sfrb P4IN = (0x001C) ;
; sfrb P4OUT = (0x001D) ;
; sfrb P4DIR = (0x001E) ;
; sfrb P4SEL = (0x001F) ;
; const sfrb P5IN = (0x0030) ;
; sfrb P5OUT = (0x0031) ;
; sfrb P5DIR = (0x0032) ;
; sfrb P5SEL = (0x0033) ;
; const sfrb P6IN = (0x0034) ;
; sfrb P6OUT = (0x0035) ;
; sfrb P6DIR = (0x0036) ;
; sfrb P6SEL = (0x0037) ;
; sfrb BTCTL = (0x0040) ;
; sfrb BTCNT1 = (0x0046) ;
; sfrb BTCNT2 = (0x0047) ;
; sfrb SCFI0 = (0x0050) ;
; sfrb SCFI1 = (0x0051) ;
; sfrb SCFQCTL = (0x0052) ;
; sfrb FLL_CTL0 = (0x0053) ;
; sfrb FLL_CTL1 = (0x0054) ;
; sfrb SVSCTL = (0x0056) ;
; sfrb LCDCTL = (0x0090) ;
; sfrb LCDM1 = (0x0091) ;
; sfrb LCDM2 = (0x0092) ;
; sfrb LCDM3 = (0x0093) ;
; sfrb LCDM4 = (0x0094) ;
; sfrb LCDM5 = (0x0095) ;
; sfrb LCDM6 = (0x0096) ;
; sfrb LCDM7 = (0x0097) ;
; sfrb LCDM8 = (0x0098) ;
; sfrb LCDM9 = (0x0099) ;
; sfrb LCDM10 = (0x009A) ;
; sfrb LCDM11 = (0x009B) ;
; sfrb LCDM12 = (0x009C) ;
; sfrb LCDM13 = (0x009D) ;
; sfrb LCDM14 = (0x009E) ;
; sfrb LCDM15 = (0x009F) ;
; sfrb LCDM16 = (0x00A0) ;
; sfrb LCDM17 = (0x00A1) ;
; sfrb LCDM18 = (0x00A2) ;
; sfrb LCDM19 = (0x00A3) ;
; sfrb LCDM20 = (0x00A4) ;
; sfrb U0CTL = (0x0070) ;
; sfrb U0TCTL = (0x0071) ;
; sfrb U0RCTL = (0x0072) ;
; sfrb U0MCTL = (0x0073) ;
; sfrb U0BR0 = (0x0074) ;
; sfrb U0BR1 = (0x0075) ;
; const sfrb U0RXBUF = (0x0076) ;
; sfrb U0TXBUF = (0x0077) ;
; const sfrw TAIV = (0x012E) ;
; sfrw TACTL = (0x0160) ;
; sfrw TACCTL0 = (0x0162) ;
; sfrw TACCTL1 = (0x0164) ;
; sfrw TACCTL2 = (0x0166) ;
; sfrw TAR = (0x0170) ;
; sfrw TACCR0 = (0x0172) ;
; sfrw TACCR1 = (0x0174) ;
; sfrw TACCR2 = (0x0176) ;
; const sfrw TBIV = (0x011E) ;
; sfrw TBCTL = (0x0180) ;
; sfrw TBCCTL0 = (0x0182) ;
; sfrw TBCCTL1 = (0x0184) ;
; sfrw TBCCTL2 = (0x0186) ;
; sfrw TBR = (0x0190) ;
; sfrw TBCCR0 = (0x0192) ;
; sfrw TBCCR1 = (0x0194) ;
; sfrw TBCCR2 = (0x0196) ;
; sfrw FCTL1 = (0x0128) ;
; sfrw FCTL2 = (0x012A) ;
; sfrw FCTL3 = (0x012C) ;
; sfrb CACTL1 = (0x0059) ;
; sfrb CACTL2 = (0x005A) ;
; sfrb CAPD = (0x005B) ;
; sfrw ADC12CTL0 = (0x01A0) ;
; sfrw ADC12CTL1 = (0x01A2) ;
; sfrw ADC12IFG = (0x01A4) ;
; sfrw ADC12IE = (0x01A6) ;
; sfrw ADC12IV = (0x01A8) ;
; sfrw ADC12MEM0 = (0x0140) ;
; sfrw ADC12MEM1 = (0x0142) ;
; sfrw ADC12MEM2 = (0x0144) ;
; sfrw ADC12MEM3 = (0x0146) ;
; sfrw ADC12MEM4 = (0x0148) ;
; sfrw ADC12MEM5 = (0x014A) ;
; sfrw ADC12MEM6 = (0x014C) ;
; sfrw ADC12MEM7 = (0x014E) ;
; sfrw ADC12MEM8 = (0x0150) ;
; sfrw ADC12MEM9 = (0x0152) ;
; sfrw ADC12MEM10 = (0x0154) ;
; sfrw ADC12MEM11 = (0x0156) ;
; sfrw ADC12MEM12 = (0x0158) ;
; sfrw ADC12MEM13 = (0x015A) ;
; sfrw ADC12MEM14 = (0x015C) ;
; sfrw ADC12MEM15 = (0x015E) ;
; sfrb ADC12MCTL0 = (0x0080) ;
; sfrb ADC12MCTL1 = (0x0081) ;
; sfrb ADC12MCTL2 = (0x0082) ;
; sfrb ADC12MCTL3 = (0x0083) ;
; sfrb ADC12MCTL4 = (0x0084) ;
; sfrb ADC12MCTL5 = (0x0085) ;
; sfrb ADC12MCTL6 = (0x0086) ;
; sfrb ADC12MCTL7 = (0x0087) ;
; sfrb ADC12MCTL8 = (0x0088) ;
; sfrb ADC12MCTL9 = (0x0089) ;
; sfrb ADC12MCTL10 = (0x008A) ;
; sfrb ADC12MCTL11 = (0x008B) ;
; sfrb ADC12MCTL12 = (0x008C) ;
; sfrb ADC12MCTL13 = (0x008D) ;
; sfrb ADC12MCTL14 = (0x008E) ;
; sfrb ADC12MCTL15 = (0x008F) ;
; typedef unsigned char byte;
; byte size 1
; typedef unsigned short uint16;
; uint16 size 2
; typedef short sint16;
; sint16 size 2
; typedef unsigned long uint32;
; uint32 size 4
; typedef long sint32;
; sint32 size 4
; extern uint16 SampledAdcRawValue;
; extern volatile byte UpdateTempCorrectionFlag;
; extern const byte FrequencyCorrectionTable[];
; extern uint16 RtcCorrectionTime;
; void UpdateCorrection(void);
; void InitialiseTimerA1(void);
; typedef unsigned int word;
; word size 2
; enum
; {
; ENGLISH,
; METRIC
; };
; static char *LCD = ((char*) (0x0091) ) ;
.iseg MSP430dayII_democ_idata
.align 0x2
MSP430dayII_democ_V1:
.align 0x2
.align 0x2
.data 0x91
.dseg MSP430dayII_democ_data
.align 0x2
MSP430dayII_democ_V2:
.align 0x2
_LCD:
.bss 0x2
; LCD size 2
; static int MODE_TIME = 5;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x5
.dseg MSP430dayII_democ_data
.align 0x2
_MODE_TIME:
.bss 0x2
; MODE_TIME size 2
; static int LCD_OFF_TIME = 5;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x5
.dseg MSP430dayII_democ_data
.align 0x2
_LCD_OFF_TIME:
.bss 0x2
; LCD_OFF_TIME size 2
; static int Refcal_ram = 1500;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x5dc
.dseg MSP430dayII_democ_data
.align 0x2
_Refcal_ram:
.bss 0x2
; Refcal_ram size 2
; static int Temp_slope_ram = 761;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x2f9
.dseg MSP430dayII_democ_data
.align 0x2
_Temp_slope_ram:
.bss 0x2
; Temp_slope_ram size 2
; static int Temp_offset_ram = 469;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x1d5
.dseg MSP430dayII_democ_data
.align 0x2
_Temp_offset_ram:
.bss 0x2
; Temp_offset_ram size 2
; int unitMode = ENGLISH;
.iseg MSP430dayII_democ_idata
.align 0x2
.align 0x2
.data 0x0
.dseg MSP430dayII_democ_data
.align 0x2
.global _unitMode
_unitMode:
.bss 0x2
; unitMode size 2
; unsigned char seconds = 0, minutes = 0, hours = 0x12;
.iseg MSP430dayII_democ_idata
.byte 0x0
.dseg MSP430dayII_democ_data
.global _seconds
_seconds:
.bss 0x1
; seconds size 1
.iseg MSP430dayII_democ_idata
.byte 0x0
.dseg MSP430dayII_democ_data
.global _minutes
_minutes:
.bss 0x1
; minutes size 1
.iseg MSP430dayII_democ_idata
.byte 0x12
.dseg MSP430dayII_democ_data
.global _hours
_hours:
.bss 0x1
; hours size 1
; int tempModeTime;
; int lcdOffModeTime;
; int twoButtonsPressed;
; signed int tempF;
; int held_down = 0;
.iseg MSP430dayII_democ_idata
.zero 0x1
.align 0x2
.align 0x2
.data 0x0
.dseg MSP430dayII_democ_data
.bss 0x1
.align 0x2
.global _held_down
_held_down:
.bss 0x2
; held_down size 2
; short bcd_add_short(short arg1,short arg2);
; void displayTime( void );
; void displayValue( int value, int stop );
; void clearLCD(void);
; void init(void);
; void decMinutes(void);
; void incMinutes(void);
; void incHours(void);
; void displayTemp(void);
; void changeUnitMode(void);
; void calibrate(void);
; void getTemp(void);
; void flashLCD(void);
; void flash_write(word* address, int data);
; void flash_erase(word* address);
; _DMEM2 static word Refcal_flash;
; _DMEM2 static word Temp_slope;
; _DMEM2 static word Temp_offset;
; const char char_gen[] = {
.iseg MSP430dayII_democ_data_const
.align 0x2
.global _char_gen
_char_gen:
.byte -0xb
; 0x10 + 0x20 + 0x40 + 0x80 + 0x04 + 0x01 ,
.byte 0x60
; 0x20 + 0x40 ,
.byte -0x4a
; 0x10 + 0x20 + 0x80 + 0x04 + 0x02 ,
.byte -0xe
; 0x10 + 0x20 + 0x40 + 0x80 + 0x02 ,
.byte 0x63
; 0x20 + 0x40 + 0x01 + 0x02 ,
.byte -0x2d
; 0x10 + 0x40 + 0x80 + 0x01 + 0x02 ,
.byte -0x29
; 0x10 + 0x40 + 0x80 + 0x04 + 0x01 + 0x02 ,
.byte 0x70
; 0x10 + 0x20 + 0x40 ,
.byte -0x9
; 0x10 + 0x20 + 0x40 + 0x80 + 0x04 + 0x01 + 0x02 ,
.byte -0xd
; 0x10 + 0x20 + 0x40 + 0x80 + 0x01 + 0x02 ,
.byte 0x77
; 0x10 + 0x20 + 0x40 + 0x04 + 0x01 + 0x02 ,
.byte 0x0
; 0x00,
.byte -0x6b
; 0x10 + 0x80 + 0x04 + 0x01 ,
.byte 0x33
; 0x10 + 0x20 + 0x01 + 0x02 ,
.byte -0x69
; 0x10 + 0x80 + 0x04 + 0x01 + 0x02 ,
.byte 0x17
; 0x10 + 0x04 + 0x01 + 0x02 ,
.byte 0x8
; 0x08 ,
.byte 0x2
; 0x02 ,
; 0x01 + 0x02 + 0x04 + 0x80
.byte -0x79
; char_gen size 19
; };
; void main(void)
.dbgseg dbg_syms
DBG3:
.long 0x6e69616d
.long 0x0
.long _main
.long 0x40
.long 0x1020001
.long DBG1
.long DBG7-DBG8
.long DBG9
.long DBG6
.long 0x0
.pseg MSP430dayII_democ_code
DBG8:
.dbgseg dbg_syms
DBG1:
.long 0x66622e
.long 0x0
.long DBG8
.long 0x0
.long 0x1650001
.long 0x0
.long 0x91
.long 0x0
.long DBG10
.long 0x0
.dbgseg dbg_line
.align 0x2
DBG9:
.long DBG3
.long 0x0
.long _main
.long 0x1
.long DBG12
.long 0x2
.long DBG13
.long 0x4
.long DBG14
.long 0x5
.long DBG15
.long 0x7
.long DBG16
.long 0x8
.long DBG17
.long 0x9
.long DBG18
.long 0xd
.long DBG19
.long 0x10
.long DBG20
.long 0x11
.long DBG21
.long 0x12
.long DBG22
.long 0x13
.long DBG23
.long 0x15
.long DBG24
.long 0x16
.long DBG25
.long 0x17
.long DBG26
.long 0x18
.long DBG27
.long 0x1a
.long DBG28
.long 0x1b
.long DBG29
.long 0x1c
.long DBG30
.long 0x1d
.long DBG31
.long 0x1e
.long DBG32
.long 0x1f
.long DBG33
.long 0x20
.long DBG34
.long 0x21
.long DBG35
.long 0x22
.long DBG36
.long 0x23
.long DBG37
.long 0x25
.long DBG38
.long 0x26
.long DBG39
.long 0x28
.long DBG40
.long 0x29
.long DBG42
.long 0x2a
.long DBG43
.long 0x2b
.long DBG44
.long 0x2c
.long DBG45
.long 0x2d
.long DBG46
.long 0x2e
.long DBG47
.long 0x2f
.long DBG48
.long 0x30
.long DBG49
.long 0x31
.long DBG50
.long 0x32
.long DBG51
.long 0x33
.long DBG53
.long 0x34
.long DBG54
.long 0x35
.long DBG55
.long 0x36
.long DBG56
.long 0x37
.pseg MSP430dayII_democ_code
.global _main
_main:
; ENTRY
DBG11:
; {
DBG12:
; init();
DBG13:
call #_init
DBG14:
; clearLCD();
call #_clearLCD
DBG15:
; while( 1 )
main_L1:
; {
DBG16:
; _BIS_SR( ( (0x0080) + (0x0040) + (0x0010) ) ) ;
DBG17:
bis #0xd0,sr
DBG18:
; UpdateCorrection();
call #_UpdateCorrection
DBG19:
; if( tempModeTime > 0 )
mov #0x0,r12
cmp &_tempModeTime,r12
jge main_L3
DBG21:
DBG20:
; {
; LCDCTL |= (0x01) ;
bis.b #0x1,&0x90
DBG22:
; getTemp();
call #_getTemp
DBG23:
; if (tempF > 79)
mov #0x4f,r12
cmp &_tempF,r12
jge main_L4
DBG24:
; P1OUT |= 0x01;
bis.b #0x1,&0x21
DBG25:
jmp main_L5
main_L4:
; else
; P1OUT &= ~0x01;
DBG26:
bic.b #0x1,&0x21
main_L5:
; displayTemp();
DBG27:
call #_displayTemp
DBG28:
; tempModeTime--;
sub #0x1,&_tempModeTime
DBG30:
DBG29:
; }
jmp main_L1
main_L3:
; else if( (~P2IN & ( (1 << 2) )) )
mov.b &0x28,r12
inv r12
bit #0x4,r12
jeq main_L7
DBG32:
DBG31:
; {
; P1OUT &= ~0x01;
bic.b #0x1,&0x21
DBG33:
; held_down++;
add #0x1,&_held_down
mov &_held_down,r12
DBG34:
; if( held_down == 4 )
cmp #0x4,r12
jne main_L1
DBG36:
DBG35:
; {
; held_down = 0;
mov #0x0,&_held_down
DBG37:
; unitMode ^= 1;
xor #0x1,&_unitMode
DBG38:
; calibrate();
call #_calibrate
DBG40:
DBG39:
; }
main_L8:
DBG41:
; }
DBG42:
jmp main_L1
main_L7:
; else
; {
DBG43:
; P1OUT &= ~0x01;
DBG44:
bic.b #0x1,&0x21
DBG45:
; if(lcdOffModeTime == 0)
cmp #0x0,&_lcdOffModeTime
jne main_L10
DBG47:
DBG46:
; {
; LCDCTL |= (0x01) ;
bis.b #0x1,&0x90
DBG48:
; displayTime();
call #_displayTime
DBG49:
; twoButtonsPressed = 0;
mov #0x0,&_twoButtonsPressed
DBG51:
DBG50:
; }
jmp main_L1
main_L10:
; else{
DBG52:
; lcdOffModeTime--;
DBG53:
sub #0x1,&_lcdOffModeTime
DBG54:
main_L11:
; }
DBG55:
main_L9:
main_L6:
; }
DBG56:
jmp main_L1
DBG59:
DBG58:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG60
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG61
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG59
.long 0x0
.long 0x1650001
.long 0x0
.long 0xc8
.long 0x0
.long 0x0
.long 0x0
.pseg MSP430dayII_democ_code
DBG7:
.dbgseg dbg_syms
.long 0x6e69616d
.long 0x0
.long DBG7
.long 0x0
.long 0xff0001
; }
; int __low_level_init(void)
DBG6:
.long 0x0
.long DBG66
.long ___low_level_init
.long 0x44
.long 0x1020001
.long DBG10
.long DBG63-DBG64
.long DBG65
.long DBG62
.long 0x0
.pseg MSP430dayII_democ_code
DBG64:
.dbgseg dbg_syms
DBG10:
.long 0x66622e
.long 0x0
.long DBG64
.long 0x0
.long 0x1650001
.long 0x0
.long 0xca
.long 0x0
.long DBG67
.long 0x0
.dbgseg dbg_line
DBG65:
.long DBG6
.long 0x0
.long ___low_level_init
.long 0x1
.long DBG69
.long 0x2
.long DBG70
.long 0x4
.long DBG71
.long 0x5
.long DBG72
.long 0x6
.long DBG73
.long 0x8
.long DBG74
.long 0x9
.pseg MSP430dayII_democ_code
.global ___low_level_init
___low_level_init:
; ENTRY
DBG68:
; {
DBG69:
; FLL_CTL0 |= (0x30) ;
DBG70:
bis.b #0x30,&0x53
DBG71:
; WDTCTL = (0x5A00) + (0x0080) ;
mov #0x5a80,&0x120
DBG72:
; while(FLL_CTL0 & (0x02) );
__low_level_init_L1:
bit.b #0x2,&0x53
jne __low_level_init_L1
__low_level_init_L2:
; return (1);
DBG73:
mov #0x1,r12
DBG75:
DBG74:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG60
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG61
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG75
.long 0x0
.long 0x1650001
.long 0x0
.long 0xd2
.long 0x0
.long 0x0
.long 0x0
.pseg MSP430dayII_democ_code
DBG63:
.dbgseg dbg_syms
.long 0x0
.long DBG66
.long DBG63
.long 0x0
.long 0xff0001
; }
; void init( void )
DBG62:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -