查看: 3464|回复: 43

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

wangkj (离线)
积分
57320
帖子
3129
发表于 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类型啊!
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 16:51:12 |显示全部楼层
难道每个数字后面都跟个L?但是,非32bit类型咋办?
定义两个?
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
宇宙飞船 (离线)
积分
35643
帖子
692
发表于 2009-7-15 17:00:16 |显示全部楼层
可用sizeof ( unsigned long int) 测试编译器对unsigned long int支持的长度。
人生得意须尽欢,莫使金樽空对月,
天生我材必有用,千金散尽还复来。
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:02:08 |显示全部楼层
这个倒是没问题,应该是32bit的。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:02:36 |显示全部楼层
(WIDTH*HIGH*8*2) 强制成32bit才是关键。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
宇宙飞船 (离线)
积分
35643
帖子
692
发表于 2009-7-15 17:05:32 |显示全部楼层
老王别教坏小朋友了。
人生得意须尽欢,莫使金樽空对月,
天生我材必有用,千金散尽还复来。
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:06:39 |显示全部楼层
版主跑哪里去了,香肠呢?这都是51高手啊。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:07:15 |显示全部楼层
程序源码

src.rar

50.06 KB, 下载次数: 2, 下载积分: 积分 -1

wangkj (离线)
积分
57320
帖子
3129
发表于 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  标志符?

模拟执行,鼠标右键,选择显示汇编代码。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
Netjob (离线)
积分
40383
帖子
960
发表于 2009-7-15 17:26:06 |显示全部楼层
哈哈,估计楼主用ADS吧?  ADS有这个稀里糊涂的毛病。
500 字节以内
不支持自定义 Discuz! 代码
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:26:47 |显示全部楼层
addr的值是0!!!!
clr_scr.jpg
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:30:32 |显示全部楼层
不用宏,照样!
clr_scr2.jpg
Netjob (离线)
积分
40383
帖子
960
发表于 2009-7-15 17:34:18 |显示全部楼层
帮楼主在 ADS1.2 下 软件仿真,没问题。 图:
WKJ-1.JPG
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 17:39:37 |显示全部楼层
俺这个是keil c,51的软件。
你用arm的系统,纯32位的,当然没问题了。

或许,换个别的版本的编译器,也没准正常,俺这个是keil c 8.18的。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
Netjob (离线)
积分
40383
帖子
960
发表于 2009-7-15 17:47:33 |显示全部楼层
这个 摆明就是数据溢出了, 对 数据异常的 判断 编译器都作  FALSE 处理!?
500 字节以内
不支持自定义 Discuz! 代码
本分书生 (离线)
积分
2
帖子
2
发表于 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,所以编译出了问题



问题可以终结了
本分书生 (离线)
积分
2
帖子
2
发表于 2009-7-15 18:01:43 |显示全部楼层
也就是说要keil要写成1024L*768L*8*2
phoenixmy (离线)
积分
100789
帖子
1435
发表于 2009-7-15 18:06:02 |显示全部楼层
学习了

很有价值,顶
欢迎访问电子工程师的收藏夹
汇聚电子设计类最新最全最有价值网站,上HotPage,做专业的电子工程师!

本站官方QQ:896631752
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 18:36:17 |显示全部楼层
或许,写成8L * 2 * 1024 * 768也没准可以。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
wangkj (离线)
积分
57320
帖子
3129
发表于 2009-7-15 19:04:30 |显示全部楼层
另外,谁有简单的图形测试程序,51下的,给我一份。
类似turbo c的bgi demo就行。或者更简单也好。
例如画线,园,三角方块等等的。
qq:1248780
email:1248780@qq.com
VGA 显示卡 arm单片机 显卡 cortex-m0 fpga 烧写器 开发板

http://item.taobao.com/item.htm?id=7801503020
您需要登录后才可以发表评论 登录 | 立即注册

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