?? ad.lis
字號:
019C 8D7F andi R24,253
019E 80936500 sts 101,R24
01A2 .dbline 84
01A2 ; NOP();
01A2 0000 nop
01A4 .dbline 85
01A4 ; uctemp[0]=PINC; //first byte
01A4 23B2 in R2,0x13
01A6 2882 std y+0,R2
01A8 .dbline 86
01A8 ; SETBIT(AD_RD_OUT, AD_RD);
01A8 80916500 lds R24,101
01AC 8260 ori R24,2
01AE 80936500 sts 101,R24
01B2 .dbline 87
01B2 ; CLEARBIT(AD_RD_OUT, AD_RD);
01B2 80916500 lds R24,101
01B6 8D7F andi R24,253
01B8 80936500 sts 101,R24
01BC .dbline 88
01BC ; NOP();
01BC 0000 nop
01BE .dbline 89
01BE ; uctemp[1]=PINC; //second byte
01BE 23B2 in R2,0x13
01C0 2982 std y+1,R2
01C2 .dbline 90
01C2 ; SETBIT(AD_RD_OUT, AD_RD);
01C2 80916500 lds R24,101
01C6 8260 ori R24,2
01C8 80936500 sts 101,R24
01CC .dbline 91
01CC ; pusOutBuff[3]=(uctemp[1]&0x0F)<<8;
01CC 822D mov R24,R2
01CE 9927 clr R25
01D0 8F70 andi R24,15
01D2 9070 andi R25,0
01D4 982F mov R25,R24
01D6 8827 clr R24
01D8 F801 movw R30,R16
01DA 9783 std z+7,R25
01DC 8683 std z+6,R24
01DE .dbline 92
01DE ; pusOutBuff[3]=pusOutBuff[3]|uctemp[0];
01DE C801 movw R24,R16
01E0 0696 adiw R24,6
01E2 4880 ldd R4,y+0
01E4 5524 clr R5
01E6 FC01 movw R30,R24
01E8 6080 ldd R6,z+0
01EA 7180 ldd R7,z+1
01EC 6428 or R6,R4
01EE 7528 or R7,R5
01F0 7182 std z+1,R7
01F2 6082 std z+0,R6
01F4 .dbline 94
01F4 ;
01F4 ; SETBIT(AD_CS_OUT, AD_CS);//unselect the ads7864
01F4 80916500 lds R24,101
01F8 8160 ori R24,1
01FA 80936500 sts 101,R24
01FE .dbline -2
01FE L2:
01FE 2296 adiw R28,2
0200 .dbline 0 ; func end
0200 0895 ret
0202 .dbsym l uctemp 0 A[2:2]c
0202 .dbsym r pusOutBuff 16 ps
0202 .dbend
0202 .dbfunc e ulAD_GetData _ulAD_GetData fV
0202 ; uctemp -> y+8
0202 ; sstemp -> y+0
0202 ; pulOutBuff -> R16,R17
.even
0202 _ulAD_GetData::
0202 2A97 sbiw R28,10
0204 .dbline -1
0204 .dbline 100
0204 ;
0204 ; }
0204 ;
0204 ;
0204 ; void ulAD_GetData(u32* pulOutBuff)
0204 ; {
0204 .dbline 111
0204 ; u8 uctemp[2];
0204 ; s16 sstemp[4];
0204 ;
0204 ; //sstemp[0]=0;
0204 ; //sstemp[1]=0;
0204 ; //sstemp[2]=0;
0204 ; //sstemp[3]=0;
0204 ;
0204 ;
0204 ; //hold channel A and channel B
0204 ; PORTD=PORTD&0x9F; //bring HoldA,HoldB low
0204 82B3 in R24,0x12
0206 8F79 andi R24,159
0208 82BB out 0x12,R24
020A .dbline 112
020A ; PORTD=PORTD|0xE0; //bring HoldA,HoldB high
020A 82B3 in R24,0x12
020C 806E ori R24,224
020E 82BB out 0x12,R24
0210 L24:
0210 .dbline 114
0210 L25:
0210 .dbline 114
0210 ;
0210 ; while(CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until first convertion is started
0210 8099 sbic 0x10,0
0212 FECF rjmp L24
0214 L27:
0214 .dbline 115
0214 L28:
0214 .dbline 115
0214 ; while(0x00==CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until first convertion is finished
0214 809B sbis 0x10,0
0216 FECF rjmp L27
0218 L30:
0218 .dbline 116
0218 L31:
0218 .dbline 116
0218 ; while(CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until second convertion is started
0218 8099 sbic 0x10,0
021A FECF rjmp L30
021C L33:
021C .dbline 117
021C L34:
021C .dbline 117
021C ; while(0x00==CHECKBIT(AD_BUSY_IN, AD_BUSY));//wait until second convertion is finished
021C 809B sbis 0x10,0
021E FECF rjmp L33
0220 .dbline 118
0220 ; CLEARBIT(AD_CS_OUT, AD_CS);//select the ads7864
0220 80916500 lds R24,101
0224 8E7F andi R24,254
0226 80936500 sts 101,R24
022A .dbline 120
022A ;
022A ; SETBIT(AD_RD_OUT, AD_RD);
022A 80916500 lds R24,101
022E 8260 ori R24,2
0230 80936500 sts 101,R24
0234 .dbline 122
0234 ;
0234 ; PORTD=PORTD|0x0C;
0234 82B3 in R24,0x12
0236 8C60 ori R24,12
0238 82BB out 0x12,R24
023A .dbline 123
023A ; PORTD=PORTD&0xE3; //A2A1A0:000 channel A0
023A 82B3 in R24,0x12
023C 837E andi R24,227
023E 82BB out 0x12,R24
0240 .dbline 124
0240 ; CLEARBIT(AD_RD_OUT, AD_RD);
0240 80916500 lds R24,101
0244 8D7F andi R24,253
0246 80936500 sts 101,R24
024A .dbline 125
024A ; NOP();
024A 0000 nop
024C .dbline 126
024C ; uctemp[0]=PINC; //first byte
024C 23B2 in R2,0x13
024E 2886 std y+8,R2
0250 .dbline 127
0250 ; SETBIT(AD_RD_OUT, AD_RD);
0250 80916500 lds R24,101
0254 8260 ori R24,2
0256 80936500 sts 101,R24
025A .dbline 128
025A ; CLEARBIT(AD_RD_OUT, AD_RD);
025A 80916500 lds R24,101
025E 8D7F andi R24,253
0260 80936500 sts 101,R24
0264 .dbline 129
0264 ; NOP();
0264 0000 nop
0266 .dbline 130
0266 ; uctemp[1]=PINC; //second byte
0266 23B2 in R2,0x13
0268 2986 std y+9,R2
026A .dbline 131
026A ; SETBIT(AD_RD_OUT, AD_RD);
026A 80916500 lds R24,101
026E 8260 ori R24,2
0270 80936500 sts 101,R24
0274 .dbline 132
0274 ; sstemp[0]=(uctemp[1]&0x0F)<<8;
0274 822D mov R24,R2
0276 9927 clr R25
0278 8F70 andi R24,15
027A 9070 andi R25,0
027C 982F mov R25,R24
027E 8827 clr R24
0280 9983 std y+1,R25
0282 8883 std y+0,R24
0284 .dbline 133
0284 ; sstemp[0]=sstemp[0]|uctemp[0];
0284 2884 ldd R2,y+8
0286 3324 clr R3
0288 2C01 movw R4,R24
028A 4228 or R4,R2
028C 5328 or R5,R3
028E 5982 std y+1,R5
0290 4882 std y+0,R4
0292 .dbline 134
0292 ; sstemp[0]=sstemp[0]<<4;
0292 1201 movw R2,R4
0294 220C lsl R2
0296 331C rol R3
0298 220C lsl R2
029A 331C rol R3
029C 220C lsl R2
029E 331C rol R3
02A0 220C lsl R2
02A2 331C rol R3
02A4 3982 std y+1,R3
02A6 2882 std y+0,R2
02A8 .dbline 136
02A8 ;
02A8 ; PORTD=PORTD|0x0C;
02A8 82B3 in R24,0x12
02AA 8C60 ori R24,12
02AC 82BB out 0x12,R24
02AE .dbline 137
02AE ; PORTD=PORTD&0xE7; //A2A1A0:001 channel A1
02AE 82B3 in R24,0x12
02B0 877E andi R24,231
02B2 82BB out 0x12,R24
02B4 .dbline 138
02B4 ; CLEARBIT(AD_RD_OUT, AD_RD);
02B4 80916500 lds R24,101
02B8 8D7F andi R24,253
02BA 80936500 sts 101,R24
02BE .dbline 139
02BE ; NOP();
02BE 0000 nop
02C0 .dbline 140
02C0 ; uctemp[0]=PINC; //first byte
02C0 23B2 in R2,0x13
02C2 2886 std y+8,R2
02C4 .dbline 141
02C4 ; SETBIT(AD_RD_OUT, AD_RD);
02C4 80916500 lds R24,101
02C8 8260 ori R24,2
02CA 80936500 sts 101,R24
02CE .dbline 142
02CE ; CLEARBIT(AD_RD_OUT, AD_RD);
02CE 80916500 lds R24,101
02D2 8D7F andi R24,253
02D4 80936500 sts 101,R24
02D8 .dbline 143
02D8 ; NOP();
02D8 0000 nop
02DA .dbline 144
02DA ; uctemp[1]=PINC; //second byte
02DA 23B2 in R2,0x13
02DC 2986 std y+9,R2
02DE .dbline 145
02DE ; SETBIT(AD_RD_OUT, AD_RD);
02DE 80916500 lds R24,101
02E2 8260 ori R24,2
02E4 80936500 sts 101,R24
02E8 .dbline 146
02E8 ; sstemp[1]=(uctemp[1]&0x0F)<<8;
02E8 822D mov R24,R2
02EA 9927 clr R25
02EC 8F70 andi R24,15
02EE 9070 andi R25,0
02F0 982F mov R25,R24
02F2 8827 clr R24
02F4 9B83 std y+3,R25
02F6 8A83 std y+2,R24
02F8 .dbline 147
02F8 ; sstemp[1]=sstemp[1]|uctemp[0];
02F8 2884 ldd R2,y+8
02FA 3324 clr R3
02FC 2C01 movw R4,R24
02FE 4228 or R4,R2
0300 5328 or R5,R3
0302 5B82 std y+3,R5
0304 4A82 std y+2,R4
0306 .dbline 148
0306 ; sstemp[1]=sstemp[1]<<4;
0306 1201 movw R2,R4
0308 220C lsl R2
030A 331C rol R3
030C 220C lsl R2
030E 331C rol R3
0310 220C lsl R2
0312 331C rol R3
0314 220C lsl R2
0316 331C rol R3
0318 3B82 std y+3,R3
031A 2A82 std y+2,R2
031C .dbline 151
031C ;
031C ;
031C ; PORTD=PORTD|0x0C;
031C 82B3 in R24,0x12
031E 8C60 ori R24,12
0320 82BB out 0x12,R24
0322 .dbline 152
0322 ; PORTD=PORTD&0xEB; //A2A1A0:010 channel B0
0322 82B3 in R24,0x12
0324 8B7E andi R24,235
0326 82BB out 0x12,R24
0328 .dbline 153
0328 ; CLEARBIT(AD_RD_OUT, AD_RD);
0328 80916500 lds R24,101
032C 8D7F andi R24,253
032E 80936500 sts 101,R24
0332 .dbline 154
0332 ; NOP();
0332 0000 nop
0334 .dbline 155
0334 ; uctemp[0]=PINC; //first byte
0334 23B2 in R2,0x13
0336 2886 std y+8,R2
0338 .dbline 156
0338 ; SETBIT(AD_RD_OUT, AD_RD);
0338 80916500 lds R24,101
033C 8260 ori R24,2
033E 80936500 sts 101,R24
0342 .dbline 157
0342 ; CLEARBIT(AD_RD_OUT, AD_RD);
0342 80916500 lds R24,101
0346 8D7F andi R24,253
0348 80936500 sts 101,R24
034C .dbline 158
034C ; NOP();
034C 0000 nop
034E .dbline 159
034E ; uctemp[1]=PINC; //second byte
034E 23B2 in R2,0x13
0350 2986 std y+9,R2
0352 .dbline 160
0352 ; SETBIT(AD_RD_OUT, AD_RD);
0352 80916500 lds R24,101
0356 8260 ori R24,2
0358 80936500 sts 101,R24
035C .dbline 161
035C ; sstemp[2]=(uctemp[1]&0x0F)<<8;
035C 822D mov R24,R2
035E 9927 clr R25
0360 8F70 andi R24,15
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -