单片机程序问题咨询函数不执行
本帖最后由 三国小兵 于 2016-9-12 10:56 编辑key_serve();
这个函数一直不执行,这个函数是轮流显示4位数码管显示0000,1111,2222,3333 有什么测试办法,判断下问题点在哪里吗
#include "dw8051.h"
#include "ExLigReg.h"
#include "ExLigLib.h"
#include "delay.h"
#include "func.h"
void main()
{
Init_Port();
SetPLL(SETPLL_3_2M);//设置3.2M的MCU时钟,单独调试(F11)此函数会失去调试连接
while(1)
{
ClearWDT();
//Led_Twin(4);
//ClearWDT();
key_serve();
test();
ClearWDT();
}
}
void key_serve(void)
{
switch(Stuse_Type)
{
case 0:
disp(0xc0,0);
disp(0xc1,0);
disp(0xc2,0);
disp(0xc3,0);
// nop;
nop;
nop;
nop;
nop;
Stuse_Type=1;
break;
case 1:
disp(0xc0,1);
disp(0xc1,1);
disp(0xc2,1);
disp(0xc3,1);
// nop;
nop;
// nop;
Stuse_Type=2;
break;
break;
case 2:
disp(0xc0,2);
disp(0xc1,2);
disp(0xc2,2);
disp(0xc3,2);
// nop;
nop;
// nop;
Stuse_Type=3;
break;
break;
case 3:
disp(0xc0,3);
disp(0xc1,3);
disp(0xc2,3);
disp(0xc3,3);
break;
}
}
自己顶下............... 你粘贴的代码乱七八糟的,一般没人帮你看代码。注意排版。
我只问一点,你的Stuse_Type是静态变量吗?
建议把看门狗关了先,把问题择清楚。
MCU时钟正在初始化,你就用仿真器单步调试,单片机的时钟都没有正常被初始化好。你的仿真器当然没办法正常的访问单片机相关的寄存器了。【可能是这里导致的失联】
WM_CH 发表于 2016-9-12 10:44
你粘贴的代码乱七八糟的,一般没人帮你看代码。注意排版。
我只问一点,你的Stuse_Type是静态变量吗?
好的,我看看
Stuse_Type 你跳到3,还有改变它吗 wongT 发表于 2016-9-12 10:56
Stuse_Type 你跳到3,还有改变它吗
没有改变了
不需要延时?Stuse_Type怎么定义的 unsigned char Stuse_Type; //状态变量 lyl2022 发表于 2016-9-12 11:03
不需要延时?Stuse_Type怎么定义的
unsigned char Stuse_Type; //状态变量 想帮你看代码,但是代码不全 加 乱七八糟的 ackyee 发表于 2016-9-12 11:18
想帮你看代码,但是代码不全 加 乱七八糟的
稍等,我上传完整代码
页:
[1]