查看: 13017|回复: 43

循环直接跳过,貌似溢出了,但是我用的是32bit类型啊!

[复制链接]
发表于 2009-7-15 16:50:37 | 显示全部楼层 |阅读模式
关键词: 类型
#define     WIDTH       1024
#define     HIGH        768

void clr_scr(void)
{
   unsigned long int i;
   for (i=0;i<(unsigned long int)(WIDTH*HIGH*8*2);i++)
   {
         MOSI=0;
      SPCK=1;
      SPCK=0;
   }
}

循环直接跳过,貌似溢出了,但是我用的是32bit类型啊!
 楼主| 发表于 2009-7-15 16:51:12 | 显示全部楼层
难道每个数字后面都跟个L?但是,非32bit类型咋办?
定义两个?
发表于 2009-7-15 17:00:16 | 显示全部楼层
可用sizeof ( unsigned long int) 测试编译器对unsigned long int支持的长度。
 楼主| 发表于 2009-7-15 17:02:08 | 显示全部楼层
这个倒是没问题,应该是32bit的。
 楼主| 发表于 2009-7-15 17:02:36 | 显示全部楼层
(WIDTH*HIGH*8*2) 强制成32bit才是关键。
发表于 2009-7-15 17:05:32 | 显示全部楼层
老王别教坏小朋友了。
 楼主| 发表于 2009-7-15 17:06:39 | 显示全部楼层
版主跑哪里去了,香肠呢?这都是51高手啊。
 楼主| 发表于 2009-7-15 17:07:15 | 显示全部楼层
程序源码

src.rar

50.06 KB, 下载积分: 积分 -1

 楼主| 发表于 2009-7-15 17:08:28 | 显示全部楼层
昨天是 for(i=0;i<97;i++) for(j<0;j<255;j++) for(k<0;k<255;k++) 这样清屏的
这样速度最快!
但是,最开始用的就是32bit int,是正常的。
这个俺想不起来咋办了。

难道都需要增加  L  标志符?

模拟执行,鼠标右键,选择显示汇编代码。
发表于 2009-7-15 17:26:06 | 显示全部楼层
哈哈,估计楼主用ADS吧?  ADS有这个稀里糊涂的毛病。
 楼主| 发表于 2009-7-15 17:26:47 | 显示全部楼层
addr的值是0!!!!
clr_scr.jpg
 楼主| 发表于 2009-7-15 17:30:32 | 显示全部楼层
不用宏,照样!
clr_scr2.jpg
发表于 2009-7-15 17:34:18 | 显示全部楼层
帮楼主在 ADS1.2 下 软件仿真,没问题。 图:
WKJ-1.JPG
 楼主| 发表于 2009-7-15 17:39:37 | 显示全部楼层
俺这个是keil c,51的软件。
你用arm的系统,纯32位的,当然没问题了。

或许,换个别的版本的编译器,也没准正常,俺这个是keil c 8.18的。
发表于 2009-7-15 17:47:33 | 显示全部楼层
这个 摆明就是数据溢出了, 对 数据异常的 判断 编译器都作  FALSE 处理!?
发表于 2009-7-15 17:59:57 | 显示全部楼层
来顺(31726560) 17:43:38
我想应该是编译是解释的次序问题
来顺(31726560) 17:54:50
已经找到错误了,是宏定义的问题
应该写为#defined WITH 1024L
注意L必须加
来顺(31726560) 17:55:30
应为keil是先算1024*768*8*2,然后才转换为long,所以编译出了问题



问题可以终结了
发表于 2009-7-15 18:01:43 | 显示全部楼层
也就是说要keil要写成1024L*768L*8*2
发表于 2009-7-15 18:06:02 | 显示全部楼层
学习了

很有价值,顶
 楼主| 发表于 2009-7-15 18:36:17 | 显示全部楼层
或许,写成8L * 2 * 1024 * 768也没准可以。
 楼主| 发表于 2009-7-15 19:04:30 | 显示全部楼层
另外,谁有简单的图形测试程序,51下的,给我一份。
类似turbo c的bgi demo就行。或者更简单也好。
例如画线,园,三角方块等等的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表