Keil下载问题,相同的代码,下载不进去。

__孤单小熊 2012-04-23 11:44:12
我个新手,自己写了个练习程序,用Keil下载到下位机是,出了点儿问题刚开始调试没问题,也可以下载进去,但是把一小段代码换了个位置,编译0 error, 0 warning, 可是就下载不进去了,代码如下,具体改变在代码后有解释,希望大牛帮忙,谢谢!
void main()
{
init();
while(1)
{
/* 更新时间 */
if(count == 20) //当count为20时,刚好1s,则更新时间,写到液晶显示器
{
count = 0;
miao++;
if(miao == 60)
{
miao = 0;
fen++;
if(fen == 60)
{
fen = 0;
shi++;
if(shi == 24)
{
shi = 0;
}
write_sfm(4, shi);
}
write_sfm(7, fen);
}
write_sfm(10, miao);
} /* 更新完毕 */
}
}

/* 定时器0中断处理函数 */
void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
count++;
}

其他的代码就省略了, 现在这种情况,可以下载到下位机中,但是我把更新时间那段代码,剪切到中断处理函数中时,编译没问题,但是下载不到下位机中,提示使用较低波特率下载,可是我一直调到了1200,还是这样的提示,请问是什么原因,我改怎么做才能解决,谢谢!
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
duxingshiweione 2012-04-24
  • 打赏
  • 举报
回复
编译没有错说明程序没有语法错误,下不进去可能是因为硬件问题!
woshi_ziyu 2012-04-24
  • 打赏
  • 举报
回复
LZ用的是哪个芯片

中断函数尽量代码少一些
__孤单小熊 2012-04-23
  • 打赏
  • 举报
回复
不会使用写代码的那个东东,所以显示的有点儿乱,解释一下,更新时间的代码,如果 count == 20 为假,则在while(1)中直接进行下一次循环判断,在中断函数中,直接跳出函数,也就是说,更新时间的代码,全都是包含在if(count == 20)的{}中的。
__孤单小熊 2012-04-23
  • 打赏
  • 举报
回复
修改之后的,不能下载到下位机的代码如下:
void main()
{
init();
while(1)

}

/* 定时器0中断处理函数 */
void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
count++;
/* 更新时间 */
if(count == 20) //当count为20时,刚好1s
{
count = 0;
miao++;
if(miao == 60)
{
miao = 0;
fen++;
if(fen == 60)
{
fen = 0;
shi++;
if(shi == 24)
{
shi = 0;
}
write_sfm(4, shi);
}
write_sfm(7, fen);
}
write_sfm(10, miao);
} /* 更新完毕 */

}

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧