本帖最后由 小S咯 于 2017-9-15 09:19 编辑
N76E003内部晶振16MHZ,我用for循环,循环里是;(分号空指令),但是用示波器观察只能延时微秒了,有大神知道怎么延时纳秒吗??
图上的时序代码
void main(void)
{
u8 key_flag=0,i;
u8 dat = 0x55;
GPIO_Init();
while(1)
{
for(i=0;i<8;i++)
{
if(dat & 0x80)
{
//1码
P04=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
P04=1;
_nop_();
}
else
{
//0码
P04=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
P04=1;
_nop_();_nop_();
}
dat<<=1;
}
}
}
0和1我在示波器看,时间大致满足图的时间,但是尝试发送一个字节的时候码就乱了,怎么回事呢?
|