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

📄 atp.lst

📁 ATmega128和ads7864实现ATP闭环控制
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    0061 EFCF      LDI	R28,0xFF
    0062 E1D0      LDI	R29,0x10
    0063 BFCD      OUT	0x3D,R28
    0064 BFDE      OUT	0x3E,R29
    0065 52C8      SUBI	R28,0x28
    0066 40D0      SBCI	R29,0
    0067 EA0A      LDI	R16,0xAA
    0068 8308      STD	Y+0,R16
    0069 2400      CLR	R0
    006A E0E0      LDI	R30,0
    006B E0F1      LDI	R31,1
    006C E015      LDI	R17,5
    006D 3EEE      CPI	R30,0xEE
    006E 07F1      CPC	R31,R17
    006F F011      BEQ	0x0072
    0070 9201      ST	R0,Z+
    0071 CFFB      RJMP	0x006D
    0072 8300      STD	Z+0,R16
    0073 ECE2      LDI	R30,0xC2
    0074 E0F0      LDI	R31,0
    0075 E0A0      LDI	R26,0
    0076 E0B1      LDI	R27,1
    0077 E010      LDI	R17,0
    0078 3CE2      CPI	R30,0xC2
    0079 07F1      CPC	R31,R17
    007A F021      BEQ	0x007F
    007B 95C8      LPM
    007C 9631      ADIW	R30,1
    007D 920D      ST	R0,X+
    007E CFF9      RJMP	0x0078
    007F 940E036E  CALL	_main
_exit:
    0081 CFFF      RJMP	_exit
_ucHex2BCD:
  uctemp               --> R20
  ucIn                 --> R22
    0082 940E139B  CALL	push_gset2
    0084 2F60      MOV	R22,R16
FILE: D:\ATP_AVR\main.c
(0001) //ICC-AVR application builder : 2007-10-30 15:43:17
(0002) #include "public.h"
(0003) 
(0004) 
(0005) #define Fy0 	61242
(0006) #define FyL 	60742
(0007) #define FyH 	61742
(0008) 
(0009) #define RadPer1MHz 	0.001
(0010) 
(0011) #define Rad0 	0.087266	//5度
(0012) 
(0013) 
(0014) //方程的系数
(0015) 
(0016) #define xishuA	4.9201506335
(0017) #define xishuB	-11.4057818550
(0018) #define xishuC	-4.9964661567
(0019) 
(0020) //const u8 ucHEX2BCD[3000][3];
(0021) 
(0022) 
(0023) u8 ucHex2BCD(u8 ucIn)
(0024) {
(0025) 	u8 uctemp;
(0026) 
(0027) 	uctemp=ucIn%10;
    0085 E01A      LDI	R17,0xA
    0086 2F06      MOV	R16,R22
    0087 940E1341  CALL	mod8u
    0089 2F40      MOV	R20,R16
(0028) 	uctemp=uctemp|(((ucIn%100)/10)<<4);
    008A E614      LDI	R17,0x64
    008B 2F06      MOV	R16,R22
    008C 940E1341  CALL	mod8u
    008E E01A      LDI	R17,0xA
    008F 940E1343  CALL	div8u
    0091 2F80      MOV	R24,R16
    0092 708F      ANDI	R24,0xF
    0093 9582      SWAP	R24
    0094 2B48      OR	R20,R24
(0029) 
(0030) 	return uctemp;
    0095 2F04      MOV	R16,R20
    0096 940E1389  CALL	pop_gset2
    0098 9508      RET
_HEX2BCD:
  uctemp               --> Y+1
  pucOutBuff           --> R10
  ulHex                --> Y+6
    0099 940E12CB  CALL	push_arg4
    009B 940E1399  CALL	push_gset3
    009D 84AA      LDD	R10,Y+10
    009E 84BB      LDD	R11,Y+11
(0031) 
(0032) }
(0033) void HEX2BCD(u32 ulHex,u8* pucOutBuff)
(0034) {
(0035) 	u8 uctemp;
(0036) 
(0037) 	pucOutBuff[2]=ulHex%10;
    009F E04A      LDI	R20,0xA
    00A0 E050      LDI	R21,0
    00A1 E060      LDI	R22,0
    00A2 E070      LDI	R23,0
    00A3 01FE      MOVW	R30,R28
    00A4 8026      LDD	R2,Z+6
    00A5 8037      LDD	R3,Z+7
    00A6 8440      LDD	R4,Z+8
    00A7 8451      LDD	R5,Z+9
    00A8 937A      ST	R23,-Y
    00A9 936A      ST	R22,-Y
    00AA 935A      ST	R21,-Y
    00AB 934A      ST	R20,-Y
    00AC 0181      MOVW	R16,R2
    00AD 0192      MOVW	R18,R4
    00AE 940E12D2  CALL	mod32u
    00B0 01F5      MOVW	R30,R10
    00B1 8302      STD	Z+2,R16
(0038) 	ulHex=ulHex/10;
    00B2 E04A      LDI	R20,0xA
    00B3 E050      LDI	R21,0
    00B4 E060      LDI	R22,0
    00B5 E070      LDI	R23,0
    00B6 01FE      MOVW	R30,R28
    00B7 8026      LDD	R2,Z+6
    00B8 8037      LDD	R3,Z+7
    00B9 8440      LDD	R4,Z+8
    00BA 8451      LDD	R5,Z+9
    00BB 937A      ST	R23,-Y
    00BC 936A      ST	R22,-Y
    00BD 935A      ST	R21,-Y
    00BE 934A      ST	R20,-Y
    00BF 0181      MOVW	R16,R2
    00C0 0192      MOVW	R18,R4
    00C1 940E12D0  CALL	div32u
    00C3 01FE      MOVW	R30,R28
    00C4 8306      STD	Z+6,R16
    00C5 8317      STD	Z+7,R17
    00C6 8720      STD	Z+8,R18
    00C7 8731      STD	Z+9,R19
(0039) 	pucOutBuff[2]=pucOutBuff[2]|((ulHex%10)<<4);
    00C8 01C5      MOVW	R24,R10
    00C9 9602      ADIW	R24,2
    00CA 011C      MOVW	R2,R24
    00CB E04A      LDI	R20,0xA
    00CC E050      LDI	R21,0
    00CD E060      LDI	R22,0
    00CE E070      LDI	R23,0
    00CF 01FE      MOVW	R30,R28
    00D0 8046      LDD	R4,Z+6
    00D1 8057      LDD	R5,Z+7
    00D2 8460      LDD	R6,Z+8
    00D3 8471      LDD	R7,Z+9
    00D4 937A      ST	R23,-Y
    00D5 936A      ST	R22,-Y
    00D6 935A      ST	R21,-Y
    00D7 934A      ST	R20,-Y
    00D8 0182      MOVW	R16,R4
    00D9 0193      MOVW	R18,R6
    00DA 940E12D2  CALL	mod32u
    00DC E084      LDI	R24,4
    00DD E090      LDI	R25,0
    00DE 938A      ST	R24,-Y
    00DF 940E13F6  CALL	lsl32
    00E1 01F1      MOVW	R30,R2
    00E2 8040      LDD	R4,Z+0
    00E3 2455      CLR	R5
    00E4 2466      CLR	R6
    00E5 2477      CLR	R7
    00E6 2A40      OR	R4,R16
    00E7 2A51      OR	R5,R17
    00E8 2A62      OR	R6,R18
    00E9 2A73      OR	R7,R19
    00EA 8240      STD	Z+0,R4
(0040) 	ulHex=ulHex/10;
    00EB E04A      LDI	R20,0xA
    00EC E050      LDI	R21,0
    00ED E060      LDI	R22,0
    00EE E070      LDI	R23,0
    00EF 01FE      MOVW	R30,R28
    00F0 8026      LDD	R2,Z+6
    00F1 8037      LDD	R3,Z+7
    00F2 8440      LDD	R4,Z+8
    00F3 8451      LDD	R5,Z+9
    00F4 937A      ST	R23,-Y
    00F5 936A      ST	R22,-Y
    00F6 935A      ST	R21,-Y
    00F7 934A      ST	R20,-Y
    00F8 0181      MOVW	R16,R2
    00F9 0192      MOVW	R18,R4
    00FA 940E12D0  CALL	div32u
    00FC 01FE      MOVW	R30,R28
    00FD 8306      STD	Z+6,R16
    00FE 8317      STD	Z+7,R17
    00FF 8720      STD	Z+8,R18
    0100 8731      STD	Z+9,R19
(0041) 	pucOutBuff[1]=ulHex%10;
    0101 E04A      LDI	R20,0xA
    0102 E050      LDI	R21,0
    0103 E060      LDI	R22,0
    0104 E070      LDI	R23,0
    0105 01FE      MOVW	R30,R28
    0106 8026      LDD	R2,Z+6
    0107 8037      LDD	R3,Z+7
    0108 8440      LDD	R4,Z+8
    0109 8451      LDD	R5,Z+9
    010A 937A      ST	R23,-Y
    010B 936A      ST	R22,-Y
    010C 935A      ST	R21,-Y
    010D 934A      ST	R20,-Y
    010E 0181      MOVW	R16,R2
    010F 0192      MOVW	R18,R4
    0110 940E12D2  CALL	mod32u
    0112 01F5      MOVW	R30,R10
    0113 8301      STD	Z+1,R16
(0042) 	ulHex=ulHex/10;
    0114 E04A      LDI	R20,0xA
    0115 E050      LDI	R21,0
    0116 E060      LDI	R22,0
    0117 E070      LDI	R23,0
    0118 01FE      MOVW	R30,R28
    0119 8026      LDD	R2,Z+6
    011A 8037      LDD	R3,Z+7
    011B 8440      LDD	R4,Z+8
    011C 8451      LDD	R5,Z+9
    011D 937A      ST	R23,-Y
    011E 936A      ST	R22,-Y
    011F 935A      ST	R21,-Y
    0120 934A      ST	R20,-Y
    0121 0181      MOVW	R16,R2
    0122 0192      MOVW	R18,R4
    0123 940E12D0  CALL	div32u
    0125 01FE      MOVW	R30,R28
    0126 8306      STD	Z+6,R16
    0127 8317      STD	Z+7,R17
    0128 8720      STD	Z+8,R18
    0129 8731      STD	Z+9,R19
(0043) 	pucOutBuff[1]=pucOutBuff[1]|((ulHex%10)<<4);
    012A 01C5      MOVW	R24,R10
    012B 9601      ADIW	R24,1
    012C 011C      MOVW	R2,R24
    012D E04A      LDI	R20,0xA
    012E E050      LDI	R21,0
    012F E060      LDI	R22,0
    0130 E070      LDI	R23,0
    0131 01FE      MOVW	R30,R28
    0132 8046      LDD	R4,Z+6
    0133 8057      LDD	R5,Z+7
    0134 8460      LDD	R6,Z+8
    0135 8471      LDD	R7,Z+9
    0136 937A      ST	R23,-Y
    0137 936A      ST	R22,-Y
    0138 935A      ST	R21,-Y
    0139 934A      ST	R20,-Y
    013A 0182      MOVW	R16,R4
    013B 0193      MOVW	R18,R6
    013C 940E12D2  CALL	mod32u
    013E E084      LDI	R24,4
    013F E090      LDI	R25,0
    0140 938A      ST	R24,-Y
    0141 940E13F6  CALL	lsl32
    0143 01F1      MOVW	R30,R2
    0144 8040      LDD	R4,Z+0
    0145 2455      CLR	R5
    0146 2466      CLR	R6
    0147 2477      CLR	R7
    0148 2A40      OR	R4,R16
    0149 2A51      OR	R5,R17
    014A 2A62      OR	R6,R18
    014B 2A73      OR	R7,R19
    014C 8240      STD	Z+0,R4
(0044) 	ulHex=ulHex/10;
    014D E04A      LDI	R20,0xA
    014E E050      LDI	R21,0
    014F E060      LDI	R22,0
    0150 E070      LDI	R23,0
    0151 01FE      MOVW	R30,R28
    0152 8026      LDD	R2,Z+6
    0153 8037      LDD	R3,Z+7
    0154 8440      LDD	R4,Z+8
    0155 8451      LDD	R5,Z+9
    0156 937A      ST	R23,-Y
    0157 936A      ST	R22,-Y
    0158 935A      ST	R21,-Y
    0159 934A      ST	R20,-Y
    015A 0181      MOVW	R16,R2
    015B 0192      MOVW	R18,R4
    015C 940E12D0  CALL	div32u
    015E 01FE      MOVW	R30,R28
    015F 8306      STD	Z+6,R16
    0160 8317      STD	Z+7,R17
    0161 8720      STD	Z+8,R18
    0162 8731      STD	Z+9,R19
(0045) 	pucOutBuff[0]=ulHex%10;
    0163 E04A      LDI	R20,0xA
    0164 E050      LDI	R21,0
    0165 E060      LDI	R22,0
    0166 E070      LDI	R23,0
    0167 01FE      MOVW	R30,R28
    0168 8026      LDD	R2,Z+6
    0169 8037      LDD	R3,Z+7
    016A 8440      LDD	R4,Z+8
    016B 8451      LDD	R5,Z+9
    016C 937A      ST	R23,-Y
    016D 936A      ST	R22,-Y
    016E 935A      ST	R21,-Y
    016F 934A      ST	R20,-Y
    0170 0181      MOVW	R16,R2
    0171 0192      MOVW	R18,R4
    0172 940E12D2  CALL	mod32u
    0174 01F5      MOVW	R30,R10
    0175 8300      STD	Z+0,R16
(0046) 	ulHex=ulHex/10;
    0176 E04A      LDI	R20,0xA
    0177 E050      LDI	R21,0
    0178 E060      LDI	R22,0
    0179 E070      LDI	R23,0
    017A 01FE      MOVW	R30,R28
    017B 8026      LDD	R2,Z+6
    017C 8037      LDD	R3,Z+7
    017D 8440      LDD	R4,Z+8
    017E 8451      LDD	R5,Z+9
    017F 937A      ST	R23,-Y
    0180 936A      ST	R22,-Y
    0181 935A      ST	R21,-Y
    0182 934A      ST	R20,-Y
    0183 0181      MOVW	R16,R2
    0184 0192      MOVW	R18,R4
    0185 940E12D0  CALL	div32u
    0187 01FE      MOVW	R30,R28
    0188 8306      STD	Z+6,R16
    0189 8317      STD	Z+7,R17
    018A 8720      STD	Z+8,R18
    018B 8731      STD	Z+9,R19
(0047) 	pucOutBuff[0]=pucOutBuff[0]|((ulHex%10)<<4);
    018C E04A      LDI	R20,0xA
    018D E050      LDI	R21,0
    018E E060      LDI	R22,0
    018F E070      LDI	R23,0
    0190 01FE      MOVW	R30,R28
    0191 8026      LDD	R2,Z+6
    0192 8037      LDD	R3,Z+7
    0193 8440      LDD	R4,Z+8
    0194 8451      LDD	R5,Z+9
    0195 937A      ST	R23,-Y
    0196 936A      ST	R22,-Y
    0197 935A      ST	R21,-Y
    0198 934A      ST	R20,-Y
    0199 0181      MOVW	R16,R2
    019A 0192      MOVW	R18,R4
    019B 940E12D2  CALL	mod32u
    019D E084      LDI	R24,4
    019E E090      LDI	R25,0
    019F 938A      ST	R24,-Y
    01A0 940E13F6  CALL	lsl32
    01A2 01F5      MOVW	R30,R10
    01A3 8020      LDD	R2,Z+0
    01A4 2433      CLR	R3
    01A5 2444      CLR	R4
    01A6 2455      CLR	R5
    01A7 2A20      OR	R2,R16
    01A8 2A31      OR	R3,R17
    01A9 2A42      OR	R4,R18
    01AA 2A53      OR	R5,R19
    01AB 8220      STD	Z+0,R2
    01AC 940E138C  CALL	pop_gset3
    01AE 9624      ADIW	R28,4
    01AF 9508      RET
_OutputFrequency:
  ucFY                 --> Y+5
  ucFX                 --> Y+2
  ulFY                 --> Y+16
  ulFX                 --> Y+12
    01B0 940E12CB  CALL	push_arg4
    01B2 940E139B  CALL	push_gset2
    01B4 9728      SBIW	R28,0x8
(0048) 
(0049) }
(0050) 
(0051) 
(0052) //输出控制频率
(0053) //输入参数:	ulFX X轴频率,单位kHz
(0054) //				ulFY Y轴频率,单位kHz
(0055) void OutputFrequency(u32 ulFX,u32 ulFY)
(0056) {
(0057) 	u8 ucFX[3],ucFY[3];
(0058) 	if((ulFX<40000)||(ulFX>70000))	return;
    01B5 E440      LDI	R20,0x40
    01B6 E95C      LDI	R21,0x9C
    01B7 E060      LDI	R22,0
    01B8 E070      LDI	R23,0
    01B9 01FE      MOVW	R30,R28
    01BA 8424      LDD	R2,Z+12
    01BB 8435      LDD	R3,Z+13
    01BC 8446      LDD	R4,Z+14
    01BD 8457      LDD	R5,Z+15
    01BE 1624      CP	R2,R20
    01BF 0635      CPC	R3,R21
    01C0 0646      CPC	R4,R22
    01C1 0657      CPC	R5,R23
    01C2 F070      BCS	0x01D1
    01C3 E740      LDI	R20,0x70
    01C4 E151      LDI	R21,0x11
    01C5 E061      LDI	R22,1
    01C6 E070      LDI	R23,0
    01C7 01FE      MOVW	R30,R28
    01C8 8424      LDD	R2,Z+12
    01C9 8435      LDD	R3,Z+13
    01CA 8446      LDD	R4,Z+14
    01CB 8457      LDD	R5,Z+15
    01CC 1542      CP	R20,R2
    01CD 0553      CPC	R21,R3
    01CE 0564      CPC	R22,R4
    01CF 0575      CPC	R23,R5
    01D0 F408      BCC	0x01D2
    01D1 C047      RJMP	0x0219
(0059) 	if((ulFY<40000)||(ulFY>70000))	return;
    01D2 E440      LDI	R20,0x40
    01D3 E95C      LDI	R21,0x9C
    01D4 E060      LDI	R22,0
    01D5 E070      LDI	R23,0
    01D6 01FE      MOVW	R30,R28
    01D7 8820      LDD	R2,Z+16
    01D8 8831      LDD	R3,Z+17
    01D9 8842      LDD	R4,Z+18
    01DA 8853      LDD	R5,Z+19
    01DB 1624      CP	R2,R20
    01DC 0635      CPC	R3,R21
    01DD 0646      CPC	R4,R22
    01DE 0657      CPC	R5,R23
    01DF F070      BCS	0x01EE
    01E0 E740      LDI	R20,0x70
    01E1 E151      LDI	R21,0x11
    01E2 E061      LDI	R22,1
    01E3 E070      LDI	R23,0
    01E4 01FE      MOVW	R30,R28

⌨️ 快捷键说明

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