📄 project.lst
字号:
035D 8140 LDD R20,Z+0
(0248) ptr->bTxLength++;
035E 01C8 MOVW R24,R16
035F 9601 ADIW R24,1
0360 01FC MOVW R30,R24
0361 8180 LDD R24,Z+0
0362 5F8F SUBI R24,0xFF
0363 8380 STD Z+0,R24
(0249) return(bData);
0364 2F04 MOV R16,R20
0365 940E08EC CALL pop_gset1
0367 9508 RET
(0250) }
(0251)
(0252) //********************************************************************
(0253) // Function : SciBuffer_Tx_In
(0254) // Input : ptr-pointer to SCI Buffer
(0255) // Output : none
(0256) // Description : Add data into the SCI TX Buffer
(0257) //********************************************************************
(0258) void SciBuffer_Tx_In(struct SCI_Buffer *ptr,INT8U bData)
(0259) {
(0260) if(ptr->bTxBufferLength < cMaxTxLength)
_SciBuffer_Tx_In:
bData --> R18
ptr --> R16
0368 01F8 MOVW R30,R16
0369 8182 LDD R24,Z+2
036A 3684 CPI R24,0x64
036B F470 BCC 0x037A
(0261) {
(0262) ptr->bTxBuffer[ptr->bTxBufferLength] = bData;
036C 01C8 MOVW R24,R16
036D 96C5 ADIW R24,0x35
036E 01F8 MOVW R30,R16
036F 81E2 LDD R30,Z+2
0370 27FF CLR R31
0371 0FE8 ADD R30,R24
0372 1FF9 ADC R31,R25
0373 8320 STD Z+0,R18
(0263) ptr->bTxBufferLength++;
0374 01C8 MOVW R24,R16
0375 9602 ADIW R24,2
0376 01FC MOVW R30,R24
0377 8180 LDD R24,Z+0
0378 5F8F SUBI R24,0xFF
0379 8380 STD Z+0,R24
(0264) }
(0265) }
037A 9508 RET
(0266)
(0267) //********************************************************************
(0268) // Function : sbGetTxBufferNoEmptyStatus
(0269) // Input : ptr-pointer to SCI Buffer
(0270) // Output : Status of SCI TX Buffer
(0271) // Description : Check whether the SCI TX Buffer is empty or not
(0272) //********************************************************************
(0273) INT8U sbGetTxBufferNoEmptyStatus(struct SCI_Buffer *ptr)
(0274) {
(0275) if(ptr->bTxLength < ptr->bTxBufferLength)
_sbGetTxBufferNoEmptyStatus:
ptr --> R16
037B 01F8 MOVW R30,R16
037C 8022 LDD R2,Z+2
037D 01F8 MOVW R30,R16
037E 8031 LDD R3,Z+1
037F 1432 CP R3,R2
0380 F410 BCC 0x0383
(0276) {
(0277) return(true);
0381 E001 LDI R16,1
0382 C001 RJMP 0x0384
(0278) }
(0279) return(false);
0383 2700 CLR R16
0384 9508 RET
(0280) }
(0281)
(0282) //********************************************************************
(0283) // Function : sbGetTxBufferNoEmptyStatus
(0284) // Input : ptr-pointer to SCI Buffer
(0285) // Output : Status of SCI TX Buffer
(0286) // Description : Check whether the SCI TX Buffer is empty or not
(0287) //********************************************************************
(0288) INT8U sbGetTxBufferEmptyStatus(struct SCI_Buffer *ptr)
(0289) {
(0290) if(ptr->bTxBufferLength == 0)
_sbGetTxBufferEmptyStatus:
ptr --> R16
0385 01F8 MOVW R30,R16
0386 8022 LDD R2,Z+2
0387 2022 TST R2
0388 F411 BNE 0x038B
(0291) {
(0292) return(true);
0389 E001 LDI R16,1
038A C001 RJMP 0x038C
(0293) }
(0294) return(false);
038B 2700 CLR R16
038C 9508 RET
(0295) }
(0296)
(0297) //********************************************************************
(0298) // Function : sbGetRxBufferEmptyStatus
(0299) // Input : ptr-pointer to SCI Buffer
(0300) // Output : Status of SCI TX Buffer
(0301) // Description : Check whether the SCI TX Buffer is empty or not
(0302) //********************************************************************
(0303) INT8U sbGetRxBufferEmptyStatus(struct SCI_Buffer *ptr)
(0304) {
(0305) if(ptr->bRxLength == 0)
_sbGetRxBufferEmptyStatus:
ptr --> R16
038D 01F8 MOVW R30,R16
038E 8020 LDD R2,Z+0
038F 2022 TST R2
0390 F411 BNE 0x0393
(0306) {
(0307) return(true);
0391 E001 LDI R16,1
0392 C001 RJMP 0x0394
(0308) }
(0309) return(false);
0393 2700 CLR R16
0394 9508 RET
(0310) }
(0311)
(0312) //********************************************************************
(0313) // Function : SciBuffer_Rx_Reset
(0314) // Input : ptr-pointer to SCI Buffer
(0315) // Output : none
(0316) // Description : Reset RX Buffer Length to zero
(0317) //********************************************************************
(0318) void SciBuffer_Rx_Reset(struct SCI_Buffer *ptr)
(0319) {
(0320) ptr->bRxLength = 0;
_SciBuffer_Rx_Reset:
ptr --> R16
0395 2422 CLR R2
0396 01F8 MOVW R30,R16
0397 8220 STD Z+0,R2
(0321) }
0398 9508 RET
(0322)
(0323) //********************************************************************
(0324) // Function : SciBuffer_Tx_Reset
(0325) // Input : ptr-pointer to SCI Buffer
(0326) // Output : none
(0327) // Description : Reset TX Buffer Length to zero
(0328) //********************************************************************
(0329) void SciBuffer_Tx_Reset(struct SCI_Buffer *ptr)
(0330) {
(0331) ptr->bTxLength = 0;
_SciBuffer_Tx_Reset:
ptr --> R16
0399 2422 CLR R2
039A 01F8 MOVW R30,R16
039B 8221 STD Z+1,R2
(0332) ptr->bTxBufferLength = 0;
039C 01F8 MOVW R30,R16
039D 8222 STD Z+2,R2
(0333) }
039E 9508 RET
(0334)
(0335) //********************************************************************
(0336) // Function : SciBuffer_Tx_Inc
(0337) // Input : ptr-pointer to SCI Buffer
(0338) // Output : none
(0339) // Description : Increase TX Buffer Length
(0340) //********************************************************************
(0341) void SciBuffer_Tx_Inc(struct SCI_Buffer *ptr)
(0342) {
(0343) ptr->bTxLength++;
_SciBuffer_Tx_Inc:
ptr --> R16
039F 01C8 MOVW R24,R16
03A0 9601 ADIW R24,1
03A1 01FC MOVW R30,R24
03A2 8180 LDD R24,Z+0
03A3 5F8F SUBI R24,0xFF
03A4 8380 STD Z+0,R24
(0344) }
03A5 9508 RET
_UART_WRITE_DATA:
ptr --> R20
03A6 940E08E9 CALL push_gset1
03A8 01A8 MOVW R20,R16
(0345)
(0346) //********************************************************************
(0347) // Function : UART_WRITE_DATA
(0348) // Input : ptr-pointer to SCI Buffer
(0349) // Output : none
(0350) // Description : Send the firstIncrease TX Buffer Length
(0351) //********************************************************************
(0352) void UART_WRITE_DATA(struct SCI_Buffer *ptr)
(0353) {
(0354) UART_TX_DATA(ptr->bTxBuffer[0]);
03A9 01FA MOVW R30,R20
03AA A905 LDD R16,Z+53
03AB DF51 RCALL _UART_TX_DATA
(0355) SciBuffer_Tx_Inc(ptr);
03AC 018A MOVW R16,R20
03AD DFF1 RCALL _SciBuffer_Tx_Inc
(0356) Enable_UART_TX_INT();
03AE DF48 RCALL _Enable_UART_TX_INT
(0357) }
03AF 940E08EC CALL pop_gset1
03B1 9508 RET
(0358)
(0359) //********************************************************************
(0360) // Function : C1Command
(0361) // Input : none
(0362) // Output : none
(0363) // Description : C1
(0364) //********************************************************************
(0365) void C1Command(void)
(0366) {
(0367) static INT8U bCount = 0;
(0368) bCount++;
_C1Command:
03B2 9180007B LDS R24,0x7B
03B4 5F8F SUBI R24,0xFF
03B5 9380007B STS 0x7B,R24
(0369) }
03B7 9508 RET
(0370)
(0371) //********************************************************************
(0372) // Function : C2Command
(0373) // Input : none
(0374) // Output : none
(0375) // Description : C2,MM
(0376) //********************************************************************
(0377) void C2Command(void)
(0378) {
(0379) }
_C2Command:
03B8 9508 RET
(0380)
(0381) //********************************************************************
(0382) // Function : D1Command
(0383) // Input : none
(0384) // Output : none
(0385) // Description : D1
(0386) //********************************************************************
(0387) void D1Command(void)
(0388) {
(0389) SciBuffer_Tx_In(&stSciBuffer,'I');
_D1Command:
03B9 E429 LDI R18,0x49
03BA E304 LDI R16,0x34
03BB E011 LDI R17,1
03BC DFAB RCALL _SciBuffer_Tx_In
(0390) SciBuffer_Tx_In(&stSciBuffer,' ');
03BD E220 LDI R18,0x20
03BE E304 LDI R16,0x34
03BF E011 LDI R17,1
03C0 DFA7 RCALL _SciBuffer_Tx_In
(0391) SciBuffer_Tx_In(&stSciBuffer,'L');
03C1 E42C LDI R18,0x4C
03C2 E304 LDI R16,0x34
03C3 E011 LDI R17,1
03C4 DFA3 RCALL _SciBuffer_Tx_In
(0392) SciBuffer_Tx_In(&stSciBuffer,'O');
03C5 E42F LDI R18,0x4F
03C6 E304 LDI R16,0x34
03C7 E011 LDI R17,1
03C8 DF9F RCALL _SciBuffer_Tx_In
(0393) SciBuffer_Tx_In(&stSciBuffer,'V');
03C9 E526 LDI R18,0x56
03CA E304 LDI R16,0x34
03CB E011 LDI R17,1
03CC DF9B RCALL _SciBuffer_Tx_In
(0394) SciBuffer_Tx_In(&stSciBuffer,'E');
03CD E425 LDI R18,0x45
03CE E304 LDI R16,0x34
03CF E011 LDI R17,1
03D0 DF97 RCALL _SciBuffer_Tx_In
(0395) SciBuffer_Tx_In(&stSciBuffer,' ');
03D1 E220 LDI R18,0x20
03D2 E304 LDI R16,0x34
03D3 E011 LDI R17,1
03D4 DF93 RCALL _SciBuffer_Tx_In
(0396) SciBuffer_Tx_In(&stSciBuffer,'Y');
03D5 E529 LDI R18,0x59
03D6 E304 LDI R16,0x34
03D7 E011 LDI R17,1
03D8 DF8F RCALL _SciBuffer_Tx_In
(0397) SciBuffer_Tx_In(&stSciBuffer,'O');
03D9 E42F LDI R18,0x4F
03DA E304 LDI R16,0x34
03DB E011 LDI R17,1
03DC DF8B RCALL _SciBuffer_Tx_In
(0398) SciBuffer_Tx_In(&stSciBuffer,'U');
03DD E525 LDI R18,0x55
03DE E304 LDI R16,0x34
03DF E011 LDI R17,1
03E0 DF87 RCALL _SciBuffer_Tx_In
(0399) SciBuffer_Tx_In(&stSciBuffer,' ');
03E1 E220 LDI R18,0x20
03E2 E304 LDI R16,0x34
03E3 E011 LDI R17,1
03E4 DF83 RCALL _SciBuffer_Tx_In
(0400) SciBuffer_Tx_In(&stSciBuffer,'!');
03E5 E221 LDI R18,0x21
03E6 E304 LDI R16,0x34
03E7 E011 LDI R17,1
03E8 DF7F RCALL _SciBuffer_Tx_In
(0401) SciBuffer_Tx_In(&stSciBuffer,'\n');
03E9 E02A LDI R18,0xA
03EA E304 LDI R16,0x34
03EB E011 LDI R17,1
03EC DF7B RCALL _SciBuffer_Tx_In
(0402)
(0403) UART_WRITE_DATA(&stSciBuffer);
03ED E304 LDI R16,0x34
03EE E011 LDI R17,1
(0404) }
03EF CFB6 RJMP _UART_WRITE_DATA
_D2Command:
03F0 9724 SBIW R28,4
(0405)
(0406) //********************************************************************
(0407) // Function : D2Command
(0408) // Input : none
(0409) // Output : none
(0410) // Description : D2
(0411) //********************************************************************
(0412) extern INT16S wLineVoltRMS;
(0413) extern INT16S wLineVoltReal;
(0414) extern INT16S wLineVoltSample;
(0415) extern INT16U wLinePeriod;
(0416) extern INT16U wLinePeriodTemp;
(0417) extern INT16U wLineCaptureTime;
(0418) extern INT16U wLineCaptureTimeLast;
(0419)
(0420) void D2Command(void)
(0421) {
(0422) //INT32U dwTest = 0xFFFFFFFF; //4294967295
(0423) sDataToNumber(wLineVoltSample,5,&stSciBuffer);
03F1 E384 LDI R24,0x34
03F2 E091 LDI R25,1
03F3 839B STD Y+3,R25
03F4 838A STD Y+2,R24
03F5 E085 LDI R24,5
03F6 8388 STD Y+0,R24
03F7 90200063 LDS R2,0x63
03F9 90300064 LDS R3,__idata_start
03FB 2444 CLR R4
03FC FC37 SBRC R3,7
03FD 9440 COM R4
03FE 2455 CLR R5
03FF FC47 SBRC R4,7
0400 9450 COM R5
0401 0181 MOVW R16,R2
0402 0192 MOVW R18,R4
0403 D3C6 RCALL _sDataToNumber
(0424) SciBuffer_Tx_In(&stSciBuffer,' ');
0404 E220 LDI R18,0x20
0405 E304 LDI R16,0x34
0406 E011 LDI R17,1
0407 DF60 RCALL _SciBuffer_Tx_In
(0425)
(0426) sDataToNumber(wLineVoltReal,5,&stSciBuffer);
0408 E384 LDI R24,0x34
0409 E091 LDI R25,1
040A 839B STD Y+3,R25
040B 838A STD Y+2,R24
040C E085 LDI R24,5
040D 8388 STD Y+0,R24
040E 90200065 LDS R2,__idata_start+1
0410 90300066 LDS R3,__idata_start+2
0412 2444 CLR R4
0413 FC37 SBRC R3,7
0414 9440 COM R4
0415 2455 CLR R5
0416 FC47 SBRC R4,7
0417 9450 COM R5
0418 0181 MOVW R16,R2
0419 0192 MOVW R18,R4
041A D3AF RCALL _sDataToNumber
(0427) SciBuffer_Tx_In(&stSciBuffer,' ');
041B E220 LDI R18,0x20
041C E304 LDI R16,0x34
041D E011 LDI R17,1
041E DF49 RCALL _SciBuffer_Tx_In
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -