打印

单片机中long型变量之间比较大小

[复制链接]
4060|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuxiaolinsara|  楼主 | 2012-6-28 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机中long型变量之间怎样比较大小?
变量定义:
unsigned long idata flash_addr;
unsigned long idata addr;
addr=0;
程序中addr会不断自加,当addr>flash_addr时,程序结束。
当初始化flash_addr=0xff时,程序正常执行;但是当flash_addr=0x01ff时,程序会不断循环,无法结束。
忘高手指点!

相关帖子

沙发
xxlin1984| | 2012-6-28 16:35 | 只看该作者
关键问题:addr是在哪自增的,中断内?

使用特权

评论回复
板凳
ayb_ice| | 2012-6-28 16:35 | 只看该作者
flash_addr = 0xxx;
for(addr = 0; addr < flash_addr; addr++){
    ....
}

使用特权

评论回复
地板
liuxiaolinsara|  楼主 | 2012-6-29 09:16 | 只看该作者
2楼:
在调用子函数的时候,读取flash中的数据时自增的。

使用特权

评论回复
5
xxlin1984| | 2012-6-29 09:33 | 只看该作者
1. 实验3L的测试办法;
2. 跟踪addr值的变化,看有没超过0x1FF;
3. addr初始化值直接设为0x1FF;

使用特权

评论回复
6
highgear| | 2012-6-29 12:18 | 只看该作者
检查自己的程序,看看是否循环或其他地方更改了 addr

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

44

帖子

0

粉丝