本帖最后由 li37hao 于 2017-6-14 09:47 编辑
最近在使用HT46R002时现在一个超长延时时序;开发环境是:MD1001D+D1019A,系统电压5V,内部时钟8MHz
采用最简易的程序依然仿真不通过,程序代码如下:
void main(void){
_pa2=0;
_pac2=0;
while(1){
_pa2=1;
_delay(250000);
_delay(250000);
_delay(250000);
_delay(250000);_delay(250000);
_delay(250000);
_delay(250000);
_delay(250000);
_pa2=0;
_delay(250000);
_delay(250000);
_delay(250000);
_delay(250000);_delay(250000);
_delay(250000);
}
}
另外还用汇编语言的代码试了一下,也是不通过延时函数如下:
...
delayl proc
mov a,ffh
mov count1,a;
mov count2,a;
mov count3,a;
d1:sdz count3;
jmp d1;
sdz count2;
jmp d1;
sdz count1;
jmp d1;
ret
........
另外也用定时器延时过,也有同样的问题,延长时间超过一秒多,就会陷入死循环,仿真看到的是,当变量变为0时就自动跳过去,直接赋值了;
不知各位大神是否有遇到过相应的问题?有何解决之道,万分感谢
|