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

📄 main.lst

📁 MMA7361加速度倾角模块
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \                     _A_OCR0A:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x46, root
   \   <unnamed> volatile __io _A_TCNT0
   \                     _A_TCNT0:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x45, root
   \   <unnamed> volatile __io _A_TCCR0B
   \                     _A_TCCR0B:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x44, root
   \   <unnamed> volatile __io _A_TCCR0A
   \                     _A_TCCR0A:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x43, root
   \   <unnamed> volatile __io _A_GTCCR
   \                     _A_GTCCR:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x41, root
   \   <unnamed> volatile __io _A_EEAR
   \                     _A_EEAR:
   \   00000000                      DS 2

   \                                 In  segment ABSOLUTE, at 0x40, root
   \   <unnamed> volatile __io _A_EEDR
   \                     _A_EEDR:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x3f, root
   \   <unnamed> volatile __io _A_EECR
   \                     _A_EECR:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x3e, root
   \   <unnamed> volatile __io _A_GPIOR0
   \                     _A_GPIOR0:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x3d, root
   \   <unnamed> volatile __io _A_EIMSK
   \                     _A_EIMSK:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x3c, root
   \   <unnamed> volatile __io _A_EIFR
   \                     _A_EIFR:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x3b, root
   \   <unnamed> volatile __io _A_PCIFR
   \                     _A_PCIFR:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x37, root
   \   <unnamed> volatile __io _A_TIFR2
   \                     _A_TIFR2:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x36, root
   \   <unnamed> volatile __io _A_TIFR1
   \                     _A_TIFR1:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x35, root
   \   <unnamed> volatile __io _A_TIFR0
   \                     _A_TIFR0:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x2b, root
   \   <unnamed> volatile __io _A_PORTD
   \                     _A_PORTD:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x2a, root
   \   <unnamed> volatile __io _A_DDRD
   \                     _A_DDRD:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x29, root
   \   <unnamed> volatile __io _A_PIND
   \                     _A_PIND:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x28, root
   \   <unnamed> volatile __io _A_PORTC
   \                     _A_PORTC:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x27, root
   \   <unnamed> volatile __io _A_DDRC
   \                     _A_DDRC:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x26, root
   \   <unnamed> volatile __io _A_PINC
   \                     _A_PINC:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x25, root
   \   <unnamed> volatile __io _A_PORTB
   \                     _A_PORTB:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x24, root
   \   <unnamed> volatile __io _A_DDRB
   \                     _A_DDRB:
   \   00000000                      DS 1

   \                                 In  segment ABSOLUTE, at 0x23, root
   \   <unnamed> volatile __io _A_PINB
   \                     _A_PINB:
   \   00000000                      DS 1
     12          #include "inAVR.h"
     13          #include "stdio.h"
     14          #include "stdbool.h"
     15          
     16          #define Max_Axis	3
     17          #define X_Channel	0	//PC2
     18          #define Y_Channel       1	//PC1
     19          #define Z_Channel	2	//PC0
     20          #define MMA7361_EN	0x08	//PC3
     21          

   \                                 In  segment NEAR_I, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
     22          const unsigned char Channel_Tbl[Max_Axis]={0x42,0x41,0x40};     //Z,Y,X
   \                     Channel_Tbl:
   \   00000000                      DS 3
   \   00000003                      REQUIRE `?<Initializer for Channel_Tbl>`

   \                                 In  segment NEAR_I, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
     23          const unsigned char Axis_Name[Max_Axis]={'X','Y','Z'};
   \                     Axis_Name:
   \   00000000                      DS 3
   \   00000003                      REQUIRE `?<Initializer for Axis_Name>`

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     24          unsigned char Temp, Temp1, ADC_Done,ShowDebug_Cnt;              //Temporary saving cells
   \                     Temp:
   \   00000000                      DS 1

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
   \                     Temp1:
   \   00000000                      DS 1

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
   \                     ADC_Done:
   \   00000000                      DS 1

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
   \                     ShowDebug_Cnt:
   \   00000000                      DS 1

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     25          unsigned int Axis_Data[Max_Axis];
   \                     Axis_Data:
   \   00000000                      DS 6

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     26          unsigned long SumReg = 0;					//Storage variable
   \                     SumReg:
   \   00000000                      DS 4

   \                                 In  segment NEAR_Z, align 1, keep-with-next, root
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     27          static char	SampCnt;                                        //ADC samples counter
   \                     SampCnt:
   \   00000000                      DS 1
     28          
     29          #include	"functions.c"

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void Timers_Init()
   \                     Timers_Init:
   \   00000000   EC03               LDI     R16, 195
   \   00000002   BD04               OUT     0x24, R16
   \   00000004   E001               LDI     R16, 1
   \   00000006   BD05               OUT     0x25, R16
   \   00000008   E000               LDI     R16, 0
   \   0000000A   BD07               OUT     0x27, R16
   \   0000000C   E000               LDI     R16, 0
   \   0000000E   9300006E           STS     110, R16
   \   00000012   E000               LDI     R16, 0
   \   00000014   93000080           STS     128, R16
   \   00000018   E009               LDI     R16, 9
   \   0000001A   93000081           STS     129, R16
   \   0000001E   E000               LDI     R16, 0
   \   00000020   93000082           STS     130, R16
   \   00000024   E000               LDI     R16, 0
   \   00000026   E010               LDI     R17, 0
   \   00000028   93100089           STS     137, R17
   \   0000002C   93000088           STS     136, R16
   \   00000030   E000               LDI     R16, 0
   \   00000032   9300006F           STS     111, R16
   \   00000036   E000               LDI     R16, 0
   \   00000038   930000B0           STS     176, R16
   \   0000003C   E006               LDI     R16, 6
   \   0000003E   930000B1           STS     177, R16
   \   00000042   E001               LDI     R16, 1
   \   00000044   93000070           STS     112, R16
   \   00000048   E000               LDI     R16, 0
   \   0000004A   930000B6           STS     182, R16
   \   0000004E   9508               RET
   \   00000050                      REQUIRE _A_ASSR
   \   00000050                      REQUIRE _A_TCCR2B
   \   00000050                      REQUIRE _A_TCCR2A
   \   00000050                      REQUIRE _A_OCR1A
   \   00000050                      REQUIRE _A_TCCR1C
   \   00000050                      REQUIRE _A_TCCR1B
   \   00000050                      REQUIRE _A_TCCR1A
   \   00000050                      REQUIRE _A_TIMSK2
   \   00000050                      REQUIRE _A_TIMSK1
   \   00000050                      REQUIRE _A_TIMSK0
   \   00000050                      REQUIRE _A_OCR0A
   \   00000050                      REQUIRE _A_TCCR0B
   \   00000050                      REQUIRE _A_TCCR0A

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void IO_Ports_Init()
   \                     IO_Ports_Init:
   \   00000000   E000               LDI     R16, 0
   \   00000002   B905               OUT     0x05, R16
   \   00000004   E30F               LDI     R16, 63
   \   00000006   B904               OUT     0x04, R16
   \   00000008   E000               LDI     R16, 0
   \   0000000A   B908               OUT     0x08, R16
   \   0000000C   EF08               LDI     R16, 248
   \   0000000E   B907               OUT     0x07, R16
   \   00000010   E000               LDI     R16, 0
   \   00000012   B90B               OUT     0x0B, R16
   \   00000014   EF0E               LDI     R16, 254
   \   00000016   B90A               OUT     0x0A, R16
   \   00000018   9A5C               SBI     0x0B, 0x04
   \   0000001A   9508               RET
   \   0000001C                      REQUIRE _A_PORTD
   \   0000001C                      REQUIRE _A_DDRD
   \   0000001C                      REQUIRE _A_PORTC
   \   0000001C                      REQUIRE _A_DDRC
   \   0000001C                      REQUIRE _A_PORTB
   \   0000001C                      REQUIRE _A_DDRB

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void ADC_Init()
   \                     ADC_Init:
   \   00000000   E10F               LDI     R16, 31
   \   00000002   9300007E           STS     126, R16
   \   00000006   E800               LDI     R16, 128
   \   00000008   BF00               OUT     0x30, R16
   \   0000000A   E803               LDI     R16, 131
   \   0000000C   9300007A           STS     122, R16
   \   00000010   E000               LDI     R16, 0
   \   00000012   9300007B           STS     123, R16
   \   00000016   E402               LDI     R16, 66
   \   00000018   9300007C           STS     124, R16
   \   0000001C   9508               RET
   \   0000001E                      REQUIRE _A_DIDR0
   \   0000001E                      REQUIRE _A_ADMUX
   \   0000001E                      REQUIRE _A_ADCSRB
   \   0000001E                      REQUIRE _A_ADCSRA
   \   0000001E                      REQUIRE _A_ACSR

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 void MMA7361_Init()
   \                     MMA7361_Init:
   \   00000000   9A43               SBI     0x08, 0x03
   \   00000002   9508               RET
   \   00000004                      REQUIRE _A_PORTC

   \                                 In  segment CODE, align 2, keep-with-next
   \   __nearfunc __version_3 unsigned int Get_ADC(unsigned char, unsigned char)
   \                     Get_ADC:
   \   00000000   ........           CALL    ?PROLOGUE5_L09
   \   00000004                      REQUIRE ?Register_R4_is_cg_reg
   \   00000004   2F80               MOV     R24, R16
   \   00000006   2E41               MOV     R4, R17
   \   00000008   E090               LDI     R25, 0
   \   0000000A   01FC               MOVW    R31:R30, R25:R24
   \   0000000C   ....               SUBI    R30, LOW((-(Channel_Tbl) & 0xFFFF))
   \   0000000E   ....               SBCI    R31, (-(Channel_Tbl) & 0xFFFF) >> 8
   \   00000010   8100               LD      R16, Z
   \   00000012   9300007C           STS     124, R16
   \   00000016   E000               LDI     R16, 0
   \   00000018   9300....           STS     Temp1, R16
   \                     ??Get_ADC_0:
   \   0000001C   9100....           LDS     R16, Temp1
   \   00000020   3302               CPI     R16, 50
   \   00000022   F430               BRCC    ??Get_ADC_1
   \   00000024   ....               LDI     R30, LOW(Temp1)
   \   00000026   ....               LDI     R31, (Temp1) >> 8
   \   00000028   8100               LD      R16, Z
   \   0000002A   9503               INC     R16
   \   0000002C   8300               ST      Z, R16
   \   0000002E   CFF6               RJMP    ??Get_ADC_0
   \                     ??Get_ADC_1:
   \   00000030   E000               LDI     R16, 0
   \   00000032   E010               LDI     R17, 0
   \   00000034   E020               LDI     R18, 0
   \   00000036   E030               LDI     R19, 0
   \   00000038   ....               LDI     R30, LOW(SumReg)
   \   0000003A   ....               LDI     R31, (SumReg) >> 8
   \   0000003C   8300               ST      Z, R16
   \   0000003E   8311               STD     Z+1, R17

⌨️ 快捷键说明

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