RAM 256字节全部清0

[复制链接]
 楼主| langgq 发表于 2012-6-5 19:30 | 显示全部楼层 |阅读模式
RAM, FOR, IDC, ui, dc
想把 79F082a 的 RAM 256字节全部清0,下面是程序,感觉不对;

void clr_ram(void)
{
     
     INT8U i ;
     INT8U data *P;
     P = (INT8U*)0X00 ;   //把RAM的地址00H传给指针
     for(i=0;i<256;i++)
     {
      
  *P++ = 0x00;
     }
}
wangzsa 发表于 2012-6-5 19:35 | 显示全部楼层
死循环了
 楼主| langgq 发表于 2012-6-5 19:38 | 显示全部楼层
好像 死循环了 ;不知道哪里问题 ,请大家帮忙
zhuww 发表于 2012-6-5 19:45 | 显示全部楼层
你定义的数据类型INT8U i ; 条件语句for(i=0;i<256;i++) 永远成立,怎么会不死循环
 楼主| langgq 发表于 2012-6-5 19:46 | 显示全部楼层
那怎么办?
zhuww 发表于 2012-6-5 19:47 | 显示全部楼层
这样写试试
for(i=0;i<255;i++)
     {
  *P++ = 0x00;
     }
*P++ = 0x00;
 楼主| langgq 发表于 2012-6-5 19:49 | 显示全部楼层
改了后,还是不行
zhanglli 发表于 2012-6-5 19:50 | 显示全部楼层
void clr_ram(void)
{
     INT8U i ;
     INT8U data *P;

     P = (INT8U*)0XFF ;  
     for(i=255; i !=0; i--)
     {
         *P-- = 0x00;
     }
}

试试上面的程序
lium 发表于 2012-6-5 19:52 | 显示全部楼层
你code 是在那里运行的?
 楼主| langgq 发表于 2012-6-5 19:53 | 显示全部楼层
在这个ram 里面运行
lium 发表于 2012-6-5 19:55 | 显示全部楼层
必然不行啊
guoyt 发表于 2012-6-5 19:58 | 显示全部楼层
你机器有几个ram
 楼主| langgq 发表于 2012-6-5 19:58 | 显示全部楼层
一个
guoyt 发表于 2012-6-5 20:06 | 显示全部楼层
这也不行啊
 楼主| langgq 发表于 2012-6-5 20:07 | 显示全部楼层
哦,我再看看吧,多谢大家,结贴了
mindshare 发表于 2012-6-5 21:27 | 显示全部楼层
想把 79F082a 的 RAM 256字节全部清0,下面是程序,感觉不对;

void clr_ram(void)
{
     
     INT8U i ;
     INT8U data *P;
     P = (INT8U*)0X00 ;   //把RAM的地址00H传给指针
     for(i=0;i ...
langgq 发表于 2012-6-5 19:30

变量i也在RAM中,清RAM时会把i也清成0,导致i不停的被清0,死循环
duyinqian1986 发表于 2012-6-5 22:32 | 显示全部楼层
给i加修饰符:register,它就不会在RAM里了,嘎嘎
jhj726 发表于 2012-6-6 14:24 | 显示全部楼层
谢谢版主
AppBaby 发表于 2012-6-6 14:34 | 显示全部楼层
C的工具,汇编的思维
反质子 发表于 2012-6-6 15:19 | 显示全部楼层
给i加修饰符:register,它就不会在RAM里了,嘎嘎
duyinqian1986 发表于 2012-6-5 22:32


用一个memset不行吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

932

主题

8762

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部