|
20黑幣
我嵌套其他匯編程序完全沒問題,但是一嵌套精準延時,程序就無法運行,請教各位大哥
#include "reg52.h"
#include<intrins.h>
sbit beep=P1^5;
void del()
{
#pragma asm
DEL3:MOV R0,#10
DEL2:MOV R1,#100
DEL1:MOV R2,#25
DEL0:NOP
NOP
DJNZ R2,DEL0
DJNZ R1,DEL1
DJNZ R0,DEL2
#pragma endasm
}
void main()
{
while(1)
{
beep=~beep;
del();
}
}
|
最佳答案
查看完整內容
解決方法:在 Files Toolbar 中選中當前C51文件,點右鍵查看文件選項,將 Generate Assembler SRC File 與 Assemble SRC File 的勾選由灰色變為黑色,即使這兩項有效!
這時進行編譯沒有問題,但是Link時產生了兩個警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
解決方法是需要在 Source Group 中添加一個 LIB 文件,根據專案的內容不同有所區別:
C51S.LIB - ...
|