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

📄 main.lst

📁 MMA7361加速度倾角模块
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   00000040   8322               STD     Z+2, R18
   \   00000042   8333               STD     Z+3, R19
   \   00000044   9240....           STS     SampCnt, R4
   \   00000048   E000               LDI     R16, 0
   \   0000004A   9300....           STS     ADC_Done, R16
   \   0000004E   EC0B               LDI     R16, 203
   \   00000050   9300007A           STS     122, R16
   \                     ??Get_ADC_2:
   \   00000054   9100....           LDS     R16, ADC_Done
   \   00000058   2300               TST     R16
   \   0000005A   F3E1               BREQ    ??Get_ADC_2
   \   0000005C   2D44               MOV     R20, R4
   \   0000005E   E050               LDI     R21, 0
   \   00000060   E060               LDI     R22, 0
   \   00000062   E070               LDI     R23, 0
   \   00000064   ....               LDI     R30, LOW(SumReg)
   \   00000066   ....               LDI     R31, (SumReg) >> 8
   \   00000068   8100               LD      R16, Z
   \   0000006A   8111               LDD     R17, Z+1
   \   0000006C   8122               LDD     R18, Z+2
   \   0000006E   8133               LDD     R19, Z+3
   \   00000070   ........           CALL    ?UL_DIVMOD_L03
   \   00000074   01D8               MOVW    R27:R26, R17:R16
   \   00000076   018D               MOVW    R17:R16, R27:R26
   \   00000078   E0E5               LDI     R30, 5
   \   0000007A   ........           JMP     ?EPILOGUE_B5_L09
   \   0000007E                      REQUIRE _A_ADMUX
   \   0000007E                      REQUIRE _A_ADCSRA

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void SW_UART_Tx(unsigned char)
   \                     SW_UART_Tx:
   \   00000000   2F60               MOV     R22, R16
   \   00000002   E070               LDI     R23, 0
   \   00000004   01AB               MOVW    R21:R20, R23:R22
   \   00000006   0F44               LSL     R20
   \   00000008   1F55               ROL     R21
   \   0000000A   6040               ORI     R20, 0x00
   \   0000000C   6052               ORI     R21, 0x02
   \   0000000E   E021               LDI     R18, 1
   \   00000010   E030               LDI     R19, 0
   \                     ??SW_UART_Tx_0:
   \   00000012   3020               CPI     R18, 0
   \   00000014   E064               LDI     R22, 4
   \   00000016   0736               CPC     R19, R22
   \   00000018   F081               BREQ    ??SW_UART_Tx_1
   \   0000001A   01BA               MOVW    R23:R22, R21:R20
   \   0000001C   2362               AND     R22, R18
   \   0000001E   2373               AND     R23, R19
   \   00000020   2B67               OR      R22, R23
   \   00000022   F411               BRNE    ??SW_UART_Tx_2
   \   00000024   9859               CBI     0x0B, 0x01
   \   00000026   C001               RJMP    ??SW_UART_Tx_3
   \                     ??SW_UART_Tx_2:
   \   00000028   9A59               SBI     0x0B, 0x01
   \                     ??SW_UART_Tx_3:
   \   0000002A   E010               LDI     R17, 0
   \                     ??SW_UART_Tx_4:
   \   0000002C   301A               CPI     R17, 10
   \   0000002E   F410               BRCC    ??SW_UART_Tx_5
   \   00000030   9513               INC     R17
   \   00000032   CFFC               RJMP    ??SW_UART_Tx_4
   \                     ??SW_UART_Tx_5:
   \   00000034   0F22               LSL     R18
   \   00000036   1F33               ROL     R19
   \   00000038   CFEC               RJMP    ??SW_UART_Tx_0
   \                     ??SW_UART_Tx_1:
   \   0000003A   9508               RET
   \   0000003C                      REQUIRE _A_PORTD

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void Show_Hex(unsigned int)
   \                     Show_Hex:
   \   00000000   ........           CALL    ?PROLOGUE4_L09
   \   00000004   01D8               MOVW    R27:R26, R17:R16
   \   00000006   E180               LDI     R24, 16
   \                     ??Show_Hex_0:
   \   00000008   3081               CPI     R24, 1
   \   0000000A   F070               BRCS    ??Show_Hex_1
   \   0000000C   5084               SUBI    R24, 4
   \   0000000E   2F48               MOV     R20, R24
   \   00000010   018D               MOVW    R17:R16, R27:R26
   \   00000012   ........           CALL    ?US_SHR_L02
   \   00000016   700F               ANDI    R16, 0x0F
   \   00000018   2F90               MOV     R25, R16
   \   0000001A   309A               CPI     R25, 10
   \   0000001C   F008               BRCS    ??Show_Hex_2
   \   0000001E   5F99               SUBI    R25, 249
   \                     ??Show_Hex_2:
   \   00000020   2F09               MOV     R16, R25
   \   00000022   5D00               SUBI    R16, 208
   \   00000024   ....               RCALL   SW_UART_Tx
   \   00000026   CFF0               RJMP    ??Show_Hex_0
   \                     ??Show_Hex_1:
   \   00000028   E0E4               LDI     R30, 4
   \   0000002A   ........           JMP     ?EPILOGUE_B4_L09

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void Put_Axis(unsigned int)
   \                     Put_Axis:
   \   00000000   ........           CALL    ?PROLOGUE4_L09
   \   00000004   9724               SBIW    R29:R28, 4
   \   00000006   01C8               MOVW    R25:R24, R17:R16
   \   00000008   EE48               LDI     R20, 232
   \   0000000A   E053               LDI     R21, 3
   \   0000000C   018C               MOVW    R17:R16, R25:R24
   \   0000000E   ........           CALL    ?US_DIVMOD_L02
   \   00000012   8308               ST      Y, R16
   \   00000014   EE48               LDI     R20, 232
   \   00000016   E053               LDI     R21, 3
   \   00000018   018C               MOVW    R17:R16, R25:R24
   \   0000001A   ........           CALL    ?US_DIVMOD_L02
   \   0000001E   018A               MOVW    R17:R16, R21:R20
   \   00000020   E644               LDI     R20, 100
   \   00000022   E050               LDI     R21, 0
   \   00000024   ........           CALL    ?US_DIVMOD_L02
   \   00000028   8309               STD     Y+1, R16
   \   0000002A   EE48               LDI     R20, 232
   \   0000002C   E053               LDI     R21, 3
   \   0000002E   018C               MOVW    R17:R16, R25:R24
   \   00000030   ........           CALL    ?US_DIVMOD_L02
   \   00000034   018A               MOVW    R17:R16, R21:R20
   \   00000036   E644               LDI     R20, 100
   \   00000038   E050               LDI     R21, 0
   \   0000003A   ........           CALL    ?US_DIVMOD_L02
   \   0000003E   018A               MOVW    R17:R16, R21:R20
   \   00000040   E04A               LDI     R20, 10
   \   00000042   E050               LDI     R21, 0
   \   00000044   ........           CALL    ?US_DIVMOD_L02
   \   00000048   830A               STD     Y+2, R16
   \   0000004A   EE48               LDI     R20, 232
   \   0000004C   E053               LDI     R21, 3
   \   0000004E   018C               MOVW    R17:R16, R25:R24
   \   00000050   ........           CALL    ?US_DIVMOD_L02
   \   00000054   018A               MOVW    R17:R16, R21:R20
   \   00000056   E644               LDI     R20, 100
   \   00000058   E050               LDI     R21, 0
   \   0000005A   ........           CALL    ?US_DIVMOD_L02
   \   0000005E   018A               MOVW    R17:R16, R21:R20
   \   00000060   E04A               LDI     R20, 10
   \   00000062   E050               LDI     R21, 0
   \   00000064   ........           CALL    ?US_DIVMOD_L02
   \   00000068   834B               STD     Y+3, R20
   \   0000006A   E0A0               LDI     R26, 0
   \                     ??Put_Axis_0:
   \   0000006C   30A4               CPI     R26, 4
   \   0000006E   F448               BRCC    ??Put_Axis_1
   \   00000070   01FE               MOVW    R31:R30, R29:R28
   \   00000072   E0B0               LDI     R27, 0
   \   00000074   0FEA               ADD     R30, R26
   \   00000076   1FFB               ADC     R31, R27
   \   00000078   8100               LD      R16, Z
   \   0000007A   5D00               SUBI    R16, 208
   \   0000007C   ....               RCALL   SW_UART_Tx
   \   0000007E   95A3               INC     R26
   \   00000080   CFF5               RJMP    ??Put_Axis_0
   \                     ??Put_Axis_1:
   \   00000082   9624               ADIW    R29:R28, 4
   \   00000084   E0E4               LDI     R30, 4
   \   00000086   ........           JMP     ?EPILOGUE_B4_L09

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void UART_Init()
   \                     UART_Init:
   \   00000000   E000               LDI     R16, 0
   \   00000002   930000C1           STS     193, R16
   \   00000006   E002               LDI     R16, 2
   \   00000008   930000C0           STS     192, R16
   \   0000000C   E006               LDI     R16, 6
   \   0000000E   930000C2           STS     194, R16
   \   00000012   E607               LDI     R16, 103
   \   00000014   930000C4           STS     196, R16
   \   00000018   E000               LDI     R16, 0
   \   0000001A   930000C5           STS     197, R16
   \   0000001E   E108               LDI     R16, 24
   \   00000020   930000C1           STS     193, R16
   \   00000024   9508               RET
   \   00000026                      REQUIRE _A_UCSR0B
   \   00000026                      REQUIRE _A_UCSR0A
   \   00000026                      REQUIRE _A_UBRR0
   \   00000026                      REQUIRE _A_UCSR0C

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void UART_Tx(unsigned char)
   \                     UART_Tx:
   \                     ??UART_Tx_0:
   \   00000000   911000C0           LDS     R17, 192
   \   00000004   2F21               MOV     R18, R17
   \   00000006   FF25               SBRS    R18, 5
   \   00000008   CFFB               RJMP    ??UART_Tx_0
   \   0000000A   930000C6           STS     198, R16
   \   0000000E   9508               RET
   \   00000010                      REQUIRE _A_UDR0
   \   00000010                      REQUIRE _A_UCSR0A

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 unsigned char UART_Rx()
   \                     UART_Rx:
   \                     ??UART_Rx_0:
   \   00000000   910000C0           LDS     R16, 192
   \   00000004   2F10               MOV     R17, R16
   \   00000006   FF17               SBRS    R17, 7
   \   00000008   CFFB               RJMP    ??UART_Rx_0
   \   0000000A   910000C6           LDS     R16, 198
   \   0000000E   9508               RET
   \   00000010                      REQUIRE _A_UDR0
   \   00000010                      REQUIRE _A_UCSR0A
     30          

   \                                 In  segment CODE, align 2, keep-with-next
     31          int main(void)
   \                     main:
     32          {
   \   00000000   939A               ST      -Y, R25
   \   00000002   938A               ST      -Y, R24
     33            unsigned char i;
     34            IO_Ports_Init();				//Initialize IO ports
   \   00000004   ....               RCALL   IO_Ports_Init
     35            Timers_Init();				//Initialize timers
   \   00000006   ....               RCALL   Timers_Init
     36            ADC_Init();					//Initialize ADC
   \   00000008   ....               RCALL   ADC_Init
     37            PRR = 0x82;                                   //Reduce consumption 86 (don't stop SPI)
   \   0000000A   E802               LDI     R16, 130
   \   0000000C   93000064           STS     100, R16
     38            CLKPR = 0x80;					//Increase Fcpu
   \   00000010   E800               LDI     R16, 128
   \   00000012   93000061           STS     97, R16
     39            CLKPR = 0x00;
   \   00000016   E000               LDI     R16, 0
   \   00000018   93000061           STS     97, R16
     40            TCCR2B = 0x06;
   \   0000001C   E006               LDI     R16, 6
   \   0000001E   930000B1           STS     177, R16
     41          
     42            __disable_interrupt();
   \   00000022   94F8               CLI
     43            __watchdog_reset();
   \   00000024   95A8               WDR
     44              WDTCSR = 0x18;				//Enable watchdog, timeout 256ms
   \   00000026   E108               LDI     R16, 24
   \   00000028   93000060           STS     96, R16
     45              WDTCSR = 0x0D;
   \   0000002C   E00D               LDI     R16, 13
   \   0000002E   93000060           STS     96, R16
     46            __enable_interrupt();				//Enable interrupts
   \   00000032   9478               SEI
     47            
     48            MMA7361_Init();
   \   00000034   ....               RCALL   MMA7361_Init
     49            while(1)
     50            {
     51              __watchdog_reset();				//Reset watchdog timer
   \                     ??main_0:
   \   00000036   95A8               WDR
     52                
     53              if(ShowDebug_Cnt==0)							
   \   00000038   9100....           LDS     R16, ShowDebug_Cnt
   \   0000003C   2300               TST     R16
   \   0000003E   F7D9               BRNE    ??main_0
     54              {
     55              	ShowDebug_Cnt=30;//13;  				//Get data periodically
   \   00000040   E10E               LDI     R16, 30
   \   00000042   9300....           STS     ShowDebug_Cnt, R16
     56              	for(i=0;i<Max_Axis;i++)					//Get Axis data 
   \   00000046   E080               LDI     R24, 0
   \                     ??main_1:
   \   00000048   3083               CPI     R24, 3
   \   0000004A   F470               BRCC    ??main_2
     57            			Axis_Data[i]=Get_ADC(i,10);
   \   0000004C   E01A               LDI     R17, 10
   \   0000004E   2F08               MOV     R16, R24
   \   00000050   ....               RCALL   Get_ADC
   \   00000052   2F28               MOV     R18, R24
   \   00000054   E030               LDI     R19, 0
   \   00000056   0F22               LSL     R18
   \   00000058   1F33               ROL     R19
   \   0000005A   01F9               MOVW    R31:R30, R19:R18
   \   0000005C   ....               SUBI    R30, LOW((-(Axis_Data) & 0xFFFF))
   \   0000005E   ....               SBCI    R31, (-(Axis_Data) & 0xFFFF) >> 8
   \   00000060   8300               ST      Z, R16
   \   00000062   8311               STD     Z+1, R17
   \   00000064   9583               INC     R24
   \   00000066   CFF0               RJMP    ??main_1
     58            		for(i=0;i<Max_Axis;i++)				//Show Axis data through UART
   \                     ??main_2:
   \   00000068   E080               LDI     R24, 0
   \                     ??main_3:
   \   0000006A   3083               CPI     R24, 3
   \   0000006C   F4A0               BRCC    ??main_4
     59            		{
     60              		SW_UART_Tx(Axis_Name[i]);
   \   0000006E   E090               LDI     R25, 0
   \   00000070   01FC               MOVW    R31:R30, R25:R24
   \   00000072   ....               SUBI    R30, LOW((-(Axis_Name) & 0xFFFF))
   \   00000074   ....               SBCI    R31, (-(Axis_Name) & 0xFFFF) >> 8
   \   00000076   8100               LD      R16, Z
   \   00000078   ....               RCALL   SW_UART_Tx
     61            			Put_Axis(Axis_Data[i]);
   \   0000007A   2F08               MOV     R16, R24
   \   0000007C   E010               LDI     R17, 0
   \   0000007E   0F00               LSL     R16
   \   00000080   1F11               ROL     R17
   \   00000082   01F8               MOVW    R31:R30, R17:R16
   \   00000084   ....               SUBI    R30, LOW((-(Axis_Data) & 0xFFFF))
   \   00000086   ....               SBCI    R31, (-(Axis_Data) & 0xFFFF) >> 8
   \   00000088   8100               LD      R16, Z
   \   0000008A   8111               LDD     R17, Z+1
   \   0000008C   ....               RCALL   Put_Axis
     62              		SW_UART_Tx(' ');
   \   0000008E   E200               LDI     R16, 32
   \   00000090   ....               RCALL   SW_UART_Tx
     63            		}
   \   00000092   9583               INC     R24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -