⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430dayii_democ.asm

📁 MSP430 RTC temperature compensation
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; 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 + -