📄 motorctr.lst
字号:
(0142) if ((UARTRxBuffHead == UARTRxBuffTail)
(0143) && (UARTRxBuffCounter == 0))
(0144) {
(0145) SEI();
(0146) return FALSE;
(0147) }
(0148) (*Data) = UARTRxBuff[UARTRxBuffHead++];
(0149)
(0150) UARTRxBuffCounter--;
(0151)
(0152) if (UARTRxBuffHead == SERIAL_RX_BUFF_SIZE)
(0153) {
(0154) UARTRxBuffHead = 0;
(0155) }
(0156) )
(0157) return TRUE;
14D E001 LDI R16,1
14E 9508 RET
(0158) }
(0159)
(0160) /***********************************************************
(0161) * 函数说明:接收缓冲区首数据察看函数 *
(0162) * 输入: 存储取出数据地址的指针 *
(0163) * 输出: 取值是否成功 *
(0164) * 调用函数:无 *
(0165) ***********************************************************/
(0166) BOOL UARTPeekDataFromRxBuff(uint8 *pData)
(0167) {
(0168) SAFE_CODE_PERFORMANCE
_UARTPeekDataFromRxBuff:
pData --> R16
14F 94F8 BCLR 7
150 9020 007D LDS R2,n+3
152 9030 007E LDS R3,0x007E
154 9040 007B LDS R4,n+1
156 9050 007C LDS R5,n+2
158 1442 CP R4,R2
159 0453 CPC R5,R3
15A F459 BNE 0x0166
15B 9020 007F LDS R2,0x007F
15D 9030 0080 LDS R3,0x0080
15F 2022 TST R2
160 F429 BNE 0x0166
161 2033 TST R3
162 F419 BNE 0x0166
163 9478 BSET 7
164 2700 CLR R16
165 C00D RJMP 0x0173
166 E385 LDI R24,0x35
167 E091 LDI R25,1
168 91E0 007B LDS R30,n+1
16A 91F0 007C LDS R31,n+2
16C 0FE8 ADD R30,R24
16D 1FF9 ADC R31,R25
16E 8020 LDD R2,Z+0
16F 01F8 MOVW R30,R16
170 8220 STD Z+0,R2
171 9478 BSET 7
(0169) (
(0170) if ((UARTRxBuffHead == UARTRxBuffTail)
(0171) && (UARTRxBuffCounter == 0))
(0172) {
(0173) SEI();
(0174) return FALSE;
(0175) }
(0176) (*pData) = UARTRxBuff[UARTRxBuffHead];
(0177) )
(0178) return TRUE;
172 E001 LDI R16,1
173 9508 RET
(0179) }
(0180)
(0181) /***********************************************************
(0182) * 函数说明:向通讯输入缓冲区添加数据函数 *
(0183) * 输入: 收到的数据 *
(0184) * 输出: 无 *
(0185) * 调用函数:无 *
(0186) ***********************************************************/
(0187) BOOL UARTaddDataToRxBuff(uint8 Data)
(0188) {
(0189) SAFE_CODE_PERFORMANCE
_UARTaddDataToRxBuff:
Data --> R16
174 94F8 BCLR 7
175 9020 007D LDS R2,n+3
177 9030 007E LDS R3,0x007E
179 9040 007B LDS R4,n+1
17B 9050 007C LDS R5,n+2
17D 1442 CP R4,R2
17E 0453 CPC R5,R3
17F F459 BNE 0x018B
180 9180 007F LDS R24,0x007F
182 9190 0080 LDS R25,0x0080
184 3880 CPI R24,0x80
185 E0E0 LDI R30,0
186 079E CPC R25,R30
187 F419 BNE 0x018B
188 9478 BSET 7
189 2700 CLR R16
18A C029 RJMP 0x01B4
18B 9020 007D LDS R2,n+3
18D 9030 007E LDS R3,0x007E
18F 01C1 MOVW R24,R2
190 9601 ADIW R24,1
191 9390 007E STS 0x007E,R25
193 9380 007D STS n+3,R24
195 E385 LDI R24,0x35
196 E091 LDI R25,1
197 01F1 MOVW R30,R2
198 0FE8 ADD R30,R24
199 1FF9 ADC R31,R25
19A 8300 STD Z+0,R16
19B 9180 007F LDS R24,0x007F
19D 9190 0080 LDS R25,0x0080
19F 9601 ADIW R24,1
1A0 9390 0080 STS 0x0080,R25
1A2 9380 007F STS 0x007F,R24
1A4 9180 007D LDS R24,n+3
1A6 9190 007E LDS R25,0x007E
1A8 3880 CPI R24,0x80
1A9 E0E0 LDI R30,0
1AA 079E CPC R25,R30
1AB F431 BNE 0x01B2
1AC 2422 CLR R2
1AD 2433 CLR R3
1AE 9230 007E STS 0x007E,R3
1B0 9220 007D STS n+3,R2
1B2 9478 BSET 7
(0190) (
(0191) if ((UARTRxBuffHead == UARTRxBuffTail)
(0192) && (UARTRxBuffCounter == SERIAL_RX_BUFF_SIZE))
(0193) {
(0194) SEI();
(0195) return FALSE;
(0196) }
(0197) UARTRxBuff[UARTRxBuffTail++] = Data;
(0198)
(0199) UARTRxBuffCounter++;
(0200)
(0201) if (UARTRxBuffTail == SERIAL_RX_BUFF_SIZE)
(0202) {
(0203) UARTRxBuffTail = 0;
(0204) }
(0205) )
(0206) return TRUE;
1B3 E001 LDI R16,1
1B4 9508 RET
(0207) }
(0208) #endif
(0209)
(0210) #ifdef _USE_SERIAL_TX_BUFF
(0211) /***********************************************************
(0212) * 函数说明:发送中断取值函数 *
(0213) * 输入: 存储取出数据地址的指针 *
(0214) * 输出: 取值是否成功 *
(0215) * 调用函数:无 *
(0216) ***********************************************************/
(0217) BOOL UARTgetDataFromTxBuff(uint8 *Data)
(0218) {
(0219)
(0220) SAFE_CODE_PERFORMANCE
_UARTgetDataFromTxBuff:
Data --> R16
1B5 94F8 BCLR 7
1B6 9020 0083 LDS R2,0x0083
1B8 9030 0084 LDS R3,0x0084
1BA 9040 0081 LDS R4,0x0081
1BC 9050 0082 LDS R5,0x0082
1BE 1442 CP R4,R2
1BF 0453 CPC R5,R3
1C0 F459 BNE 0x01CC
1C1 9020 0085 LDS R2,0x0085
1C3 9030 0086 LDS R3,0x0086
1C5 2022 TST R2
1C6 F429 BNE 0x01CC
1C7 2033 TST R3
1C8 F419 BNE 0x01CC
1C9 9478 BSET 7
1CA 2700 CLR R16
1CB C02B RJMP 0x01F7
1CC 9020 0081 LDS R2,0x0081
1CE 9030 0082 LDS R3,0x0082
1D0 01C1 MOVW R24,R2
1D1 9601 ADIW R24,1
1D2 9390 0082 STS 0x0082,R25
1D4 9380 0081 STS 0x0081,R24
1D6 EB85 LDI R24,0xB5
1D7 E090 LDI R25,0
1D8 01F1 MOVW R30,R2
1D9 0FE8 ADD R30,R24
1DA 1FF9 ADC R31,R25
1DB 8020 LDD R2,Z+0
1DC 01F8 MOVW R30,R16
1DD 8220 STD Z+0,R2
1DE 9180 0085 LDS R24,0x0085
1E0 9190 0086 LDS R25,0x0086
1E2 9701 SBIW R24,1
1E3 9390 0086 STS 0x0086,R25
1E5 9380 0085 STS 0x0085,R24
1E7 9180 0081 LDS R24,0x0081
1E9 9190 0082 LDS R25,0x0082
1EB 3880 CPI R24,0x80
1EC E0E0 LDI R30,0
1ED 079E CPC R25,R30
1EE F431 BNE 0x01F5
1EF 2422 CLR R2
1F0 2433 CLR R3
1F1 9230 0082 STS 0x0082,R3
1F3 9220 0081 STS 0x0081,R2
1F5 9478 BSET 7
(0221) (
(0222) if ((UARTTxBuffHead == UARTTxBuffTail)
(0223) && (UARTTxBuffCounter == 0))
(0224) {
(0225) SEI();
(0226) return FALSE;
(0227) }
(0228) (*Data) = UARTTxBuff[UARTTxBuffHead++];
(0229)
(0230) UARTTxBuffCounter--;
(0231)
(0232) if (UARTTxBuffHead == SERIAL_TX_BUFF_SIZE)
(0233) {
(0234) UARTTxBuffHead = 0;
(0235) }
(0236) )
(0237) return TRUE;
1F6 E001 LDI R16,1
1F7 9508 RET
(0238) }
(0239)
(0240) /***********************************************************
(0241) * 函数说明:首数据察看函数 *
(0242) * 输入: 存储数据地址的指针 *
(0243) * 输出: 取值是否成功 *
(0244) * 调用函数:五 *
(0245) ***********************************************************/
(0246) BOOL UARTPeekDataFromTxBuff(uint8 *pData)
(0247) {
(0248) SAFE_CODE_PERFORMANCE
_UARTPeekDataFromTxBuff:
pData --> R16
1F8 94F8 BCLR 7
1F9 9020 0083 LDS R2,0x0083
1FB 9030 0084 LDS R3,0x0084
1FD 9040 0081 LDS R4,0x0081
1FF 9050 0082 LDS R5,0x0082
201 1442 CP R4,R2
202 0453 CPC R5,R3
203 F459 BNE 0x020F
204 9020 0085 LDS R2,0x0085
206 9030 0086 LDS R3,0x0086
208 2022 TST R2
209 F429 BNE 0x020F
20A 2033 TST R3
20B F419 BNE 0x020F
20C 9478 BSET 7
20D 2700 CLR R16
20E C00D RJMP 0x021C
20F EB85 LDI R24,0xB5
210 E090 LDI R25,0
211 91E0 0081 LDS R30,0x0081
213 91F0 0082 LDS R31,0x0082
215 0FE8 ADD R30,R24
216 1FF9 ADC R31,R25
217 8020 LDD R2,Z+0
218 01F8 MOVW R30,R16
219 8220 STD Z+0,R2
21A 9478 BSET 7
(0249) (
(0250) if ((UARTTxBuffHead == UARTTxBuffTail)
(0251) && (UARTTxBuffCounter == 0))
(0252) {
(0253) SEI();
(0254) return FALSE;
(0255) }
(0256) (*pData) = UARTTxBuff[UARTTxBuffHead];
(0257) )
(0258) return TRUE;
21B E001 LDI R16,1
21C 9508 RET
(0259) }
(0260)
(0261) /***********************************************************
(0262) * 函数说明:向通讯输出缓冲区添加数据函数 *
(0263) * 输入: 需要发送的数据 *
(0264) * 输出: 无 *
(0265) * 调用函数:无 *
(0266) ***********************************************************/
(0267) BOOL UARTaddDataToTxBuff(uint8 Data)
(0268) {
(0269)
(0270) SAFE_CODE_PERFORMANCE
_UARTaddDataToTxBuff:
Data --> R16
21D 94F8 BCLR 7
21E 9020 0083 LDS R2,0x0083
220 9030 0084 LDS R3,0x0084
222 9040 0081 LDS R4,0x0081
224 9050 0082 LDS R5,0x0082
226 1442 CP R4,R2
227 0453 CPC R5,R3
228 F459 BNE 0x0234
229 9180 0085 LDS R24,0x0085
22B 9190 0086 LDS R25,0x0086
22D 3880 CPI R24,0x80
22E E0E0 LDI R30,0
22F 079E CPC R25,R30
230 F419 BNE 0x0234
231 9478 BSET 7
232 2700 CLR R16
233 C029 RJMP 0x025D
234 9020 0083 LDS R2,0x0083
236 9030 0084 LDS R3,0x0084
238 01C1 MOVW R24,R2
239 9601 ADIW R24,1
23A 9390 0084 STS 0x0084,R25
23C 9380 0083 STS 0x0083,R24
23E EB85 LDI R24,0xB5
23F E090 LDI R25,0
240 01F1 MOVW R30,R2
241 0FE8 ADD R30,R24
242 1FF9 ADC R31,R25
243 8300 STD Z+0,R16
244 9180 0085 LDS R24,0x0085
246 9190 0086 LDS R25,0x0086
248 9601 ADIW R24,1
249 9390 0086 STS 0x0086,R25
24B 9380 0085 STS 0x0085,R24
24D 9180 0083 LDS R24,0x0083
24F 9190 0084 LDS R25,0x0084
251 3880 CPI R24,0x80
252 E0E0 LDI R30,0
253 079E CPC R25,R30
254 F431 BNE 0x025B
255 2422 CLR R2
256 2433 CLR R3
257 9230 0084 STS 0x0084,R3
259 9220 0083 STS 0x0083,R2
25B 9478 BSET 7
(0271) (
(0272) if ((UARTTxBuffHead == UARTTxBuffTail)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -