?? ad.lis
字號(hào):
.module AD.c
.area text(rom, con, rel)
0000 .dbfile D:\ATP_AVR\AD.c
0000 .dbfunc e AD_Init _AD_Init fV
.even
0000 _AD_Init::
0000 .dbline -1
0000 .dbline 4
0000 ; #include "public.h"
0000 ;
0000 ; void AD_Init(void)
0000 ; {
0000 .dbline 5
0000 ; SETBIT(AD_RST_OUT, AD_RST);
0000 919A sbi 0x12,1
0002 .dbline 6
0002 ; CLEARBIT(AD_RST_OUT, AD_RST);
0002 9198 cbi 0x12,1
0004 .dbline 7
0004 ; NOP();
0004 0000 nop
0006 .dbline 8
0006 ; NOP();
0006 0000 nop
0008 .dbline 9
0008 ; SETBIT(AD_RST_OUT, AD_RST);
0008 919A sbi 0x12,1
000A .dbline 10
000A ; NOP();
000A 0000 nop
000C .dbline 11
000C ; NOP();
000C 0000 nop
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e AD_GetData _AD_GetData fV
0010 ; uctemp -> y+0
0010 ; pusOutBuff -> R16,R17
.even
0010 _AD_GetData::
0010 2297 sbiw R28,2
0012 .dbline -1
0012 .dbline 15
0012 ; }
0012 ;
0012 ; void AD_GetData(u16* pusOutBuff)
0012 ; {
0012 .dbline 18
0012 ; u8 uctemp[2];
0012 ; //u16 usADData[4]={0,0,0,0};
0012 ; pusOutBuff[0]=0;
0012 2224 clr R2
0014 3324 clr R3
0016 F801 movw R30,R16
0018 3182 std z+1,R3
001A 2082 std z+0,R2
001C .dbline 19
001C ; pusOutBuff[1]=0;
001C 3382 std z+3,R3
001E 2282 std z+2,R2
0020 .dbline 20
0020 ; pusOutBuff[2]=0;
0020 F801 movw R30,R16
0022 3582 std z+5,R3
0024 2482 std z+4,R2
0026 .dbline 21
0026 ; pusOutBuff[3]=0;
0026 F801 movw R30,R16
0028 3782 std z+7,R3
002A 2682 std z+6,R2
002C .dbline 25
002C ;
002C ;
002C ; //hold channel A and channel B
002C ; PORTD=PORTD&0x9F; //bring HoldA,HoldB low
002C 82B3 in R24,0x12
002E 8F79 andi R24,159
0030 82BB out 0x12,R24
0032 .dbline 26
0032 ; PORTD=PORTD|0xE0; //bring HoldA,HoldB high
0032 82B3 in R24,0x12
0034 806E ori R24,224
0036 82BB out 0x12,R24
0038 L3:
0038 .dbline 31
0038 L4:
0038 .dbline 31
0038 ;
0038 ; //PORTD=PORTD&0xDF; //bring HoldA,HoldB low
0038 ; //PORTD=PORTD|0xE0; //bring HoldA,HoldB high
0038 ;
0038 ; while(CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until first convertion is started
0038 8099 sbic 0x10,0
003A FECF rjmp L3
003C L6:
003C .dbline 32
003C L7:
003C .dbline 32
003C ; while(0x00==CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until first convertion is finished
003C 809B sbis 0x10,0
003E FECF rjmp L6
0040 L9:
0040 .dbline 33
0040 L10:
0040 .dbline 33
0040 ; while(CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until second convertion is started
0040 8099 sbic 0x10,0
0042 FECF rjmp L9
0044 L12:
0044 .dbline 34
0044 L13:
0044 .dbline 34
0044 ; while(0x00==CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until second convertion is finished
0044 809B sbis 0x10,0
0046 FECF rjmp L12
0048 .dbline 35
0048 ; CLEARBIT(AD_CS_OUT, AD_CS);//select the ads7864
0048 80916500 lds R24,101
004C 8E7F andi R24,254
004E 80936500 sts 101,R24
0052 .dbline 37
0052 ;
0052 ; SETBIT(AD_RD_OUT, AD_RD);
0052 80916500 lds R24,101
0056 8260 ori R24,2
0058 80936500 sts 101,R24
005C .dbline 39
005C ;
005C ; PORTD=PORTD|0x0C;
005C 82B3 in R24,0x12
005E 8C60 ori R24,12
0060 82BB out 0x12,R24
0062 .dbline 40
0062 ; PORTD=PORTD&0xE3; //A2A1A0:000 channel A0
0062 82B3 in R24,0x12
0064 837E andi R24,227
0066 82BB out 0x12,R24
0068 .dbline 41
0068 ; CLEARBIT(AD_RD_OUT, AD_RD);
0068 80916500 lds R24,101
006C 8D7F andi R24,253
006E 80936500 sts 101,R24
0072 .dbline 42
0072 ; NOP();
0072 0000 nop
0074 .dbline 43
0074 ; uctemp[0]=PINC; //first byte
0074 23B2 in R2,0x13
0076 2882 std y+0,R2
0078 .dbline 44
0078 ; SETBIT(AD_RD_OUT, AD_RD);
0078 80916500 lds R24,101
007C 8260 ori R24,2
007E 80936500 sts 101,R24
0082 .dbline 45
0082 ; CLEARBIT(AD_RD_OUT, AD_RD);
0082 80916500 lds R24,101
0086 8D7F andi R24,253
0088 80936500 sts 101,R24
008C .dbline 46
008C ; NOP();
008C 0000 nop
008E .dbline 47
008E ; uctemp[1]=PINC; //second byte
008E 23B2 in R2,0x13
0090 2982 std y+1,R2
0092 .dbline 48
0092 ; SETBIT(AD_RD_OUT, AD_RD);
0092 80916500 lds R24,101
0096 8260 ori R24,2
0098 80936500 sts 101,R24
009C .dbline 49
009C ; pusOutBuff[0]=(uctemp[1]&0x0F)<<8;
009C 822D mov R24,R2
009E 9927 clr R25
00A0 8F70 andi R24,15
00A2 9070 andi R25,0
00A4 982F mov R25,R24
00A6 8827 clr R24
00A8 F801 movw R30,R16
00AA 9183 std z+1,R25
00AC 8083 std z+0,R24
00AE .dbline 50
00AE ; pusOutBuff[0]=pusOutBuff[0]|uctemp[0];
00AE 2880 ldd R2,y+0
00B0 3324 clr R3
00B2 4080 ldd R4,z+0
00B4 5180 ldd R5,z+1
00B6 4228 or R4,R2
00B8 5328 or R5,R3
00BA 5182 std z+1,R5
00BC 4082 std z+0,R4
00BE ;
00BE ; PORTD=PORTD|0x0C;
00BE 82B3 in R24,0x12
00C0 8C60 ori R24,12
00C2 82BB out 0x12,R24
00C4 .dbline 53
00C4 ; PORTD=PORTD&0xE7; //A2A1A0:001 channel A1
00C4 82B3 in R24,0x12
00C6 877E andi R24,231
00C8 82BB out 0x12,R24
00CA .dbline 54
00CA ; CLEARBIT(AD_RD_OUT, AD_RD);
00CA 80916500 lds R24,101
00CE 8D7F andi R24,253
00D0 80936500 sts 101,R24
00D4 .dbline 55
00D4 ; NOP();
00D4 0000 nop
00D6 .dbline 56
00D6 ; uctemp[0]=PINC; //first byte
00D6 23B2 in R2,0x13
00D8 2882 std y+0,R2
00DA .dbline 57
00DA ; SETBIT(AD_RD_OUT, AD_RD);
00DA 80916500 lds R24,101
00DE 8260 ori R24,2
00E0 80936500 sts 101,R24
00E4 .dbline 58
00E4 ; CLEARBIT(AD_RD_OUT, AD_RD);
00E4 80916500 lds R24,101
00E8 8D7F andi R24,253
00EA 80936500 sts 101,R24
00EE .dbline 59
00EE ; NOP();
00EE 0000 nop
00F0 .dbline 60
00F0 ; uctemp[1]=PINC; //second byte
00F0 23B2 in R2,0x13
00F2 2982 std y+1,R2
00F4 .dbline 61
00F4 ; SETBIT(AD_RD_OUT, AD_RD);
00F4 80916500 lds R24,101
00F8 8260 ori R24,2
00FA 80936500 sts 101,R24
00FE .dbline 62
00FE ; pusOutBuff[1]=(uctemp[1]&0x0F)<<8;
00FE 822D mov R24,R2
0100 9927 clr R25
0102 8F70 andi R24,15
0104 9070 andi R25,0
0106 982F mov R25,R24
0108 8827 clr R24
010A 9383 std z+3,R25
010C 8283 std z+2,R24
010E .dbline 63
010E ; pusOutBuff[1]=pusOutBuff[1]|uctemp[0];
010E C801 movw R24,R16
0110 0296 adiw R24,2
0112 4880 ldd R4,y+0
0114 5524 clr R5
0116 FC01 movw R30,R24
0118 6080 ldd R6,z+0
011A 7180 ldd R7,z+1
011C 6428 or R6,R4
011E 7528 or R7,R5
0120 7182 std z+1,R7
0122 6082 std z+0,R6
0124 .dbline 67
0124 ;
0124 ;
0124 ;
0124 ; PORTD=PORTD|0x0C;
0124 82B3 in R24,0x12
0126 8C60 ori R24,12
0128 82BB out 0x12,R24
012A .dbline 68
012A ; PORTD=PORTD&0xEB; //A2A1A0:010 channel B0
012A 82B3 in R24,0x12
012C 8B7E andi R24,235
012E 82BB out 0x12,R24
0130 .dbline 69
0130 ; CLEARBIT(AD_RD_OUT, AD_RD);
0130 80916500 lds R24,101
0134 8D7F andi R24,253
0136 80936500 sts 101,R24
013A .dbline 70
013A ; NOP();
013A 0000 nop
013C .dbline 71
013C ; uctemp[0]=PINC; //first byte
013C 23B2 in R2,0x13
013E 2882 std y+0,R2
0140 .dbline 72
0140 ; SETBIT(AD_RD_OUT, AD_RD);
0140 80916500 lds R24,101
0144 8260 ori R24,2
0146 80936500 sts 101,R24
014A .dbline 73
014A ; CLEARBIT(AD_RD_OUT, AD_RD);
014A 80916500 lds R24,101
014E 8D7F andi R24,253
0150 80936500 sts 101,R24
0154 .dbline 74
0154 ; NOP();
0154 0000 nop
0156 .dbline 75
0156 ; uctemp[1]=PINC; //second byte
0156 23B2 in R2,0x13
0158 2982 std y+1,R2
015A .dbline 76
015A ; SETBIT(AD_RD_OUT, AD_RD);
015A 80916500 lds R24,101
015E 8260 ori R24,2
0160 80936500 sts 101,R24
0164 .dbline 77
0164 ; pusOutBuff[2]=(uctemp[1]&0x0F)<<8;
0164 822D mov R24,R2
0166 9927 clr R25
0168 8F70 andi R24,15
016A 9070 andi R25,0
016C 982F mov R25,R24
016E 8827 clr R24
0170 F801 movw R30,R16
0172 9583 std z+5,R25
0174 8483 std z+4,R24
0176 .dbline 78
0176 ; pusOutBuff[2]=pusOutBuff[2]|uctemp[0];
0176 C801 movw R24,R16
0178 0496 adiw R24,4
017A 4880 ldd R4,y+0
017C 5524 clr R5
017E FC01 movw R30,R24
0180 6080 ldd R6,z+0
0182 7180 ldd R7,z+1
0184 6428 or R6,R4
0186 7528 or R7,R5
0188 7182 std z+1,R7
018A 6082 std z+0,R6
018C .dbline 81
018C ;
018C ;
018C ; PORTD=PORTD|0x0C;
018C 82B3 in R24,0x12
018E 8C60 ori R24,12
0190 82BB out 0x12,R24
0192 .dbline 82
0192 ; PORTD=PORTD&0xEF; //A2A1A0:011 channel B1
0192 82B3 in R24,0x12
0194 8F7E andi R24,239
0196 82BB out 0x12,R24
0198 .dbline 83
0198 ; CLEARBIT(AD_RD_OUT, AD_RD);
0198 80916500 lds R24,101
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -