打印
[其它应用]

全部清0

[复制链接]
8798|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
happy_10|  楼主 | 2021-7-4 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
       }
}

使用特权

评论回复
沙发
wenfen| | 2021-7-4 17:58 | 只看该作者
死循环了

使用特权

评论回复
板凳
happy_10|  楼主 | 2021-7-4 18:00 | 只看该作者
好像 死循环了 ;不知道哪里问题 ,请大家帮忙

使用特权

评论回复
地板
tian111| | 2021-7-4 18:52 | 只看该作者
你定义的数据类型INT8U i ; 条件语句for(i=0;i<256;i++) 永远成立,怎么会不死循环

使用特权

评论回复
5
happy_10|  楼主 | 2021-7-4 18:53 | 只看该作者

那怎么办?

使用特权

评论回复
6
songqian17| | 2021-7-4 18:55 | 只看该作者
这样写试试
for(i=0;i<255;i++)
       {
  *P++ = 0x00;
       }
*P++ = 0x00;

使用特权

评论回复
7
happy_10|  楼主 | 2021-7-4 18:57 | 只看该作者
改了后,还是不行

使用特权

评论回复
8
stly| | 2021-7-4 19:00 | 只看该作者

void clr_ram(void)
{
       INT8U i ;
       INT8U data *P;

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

试试上面的程序

使用特权

评论回复
9
heweibig| | 2021-7-4 19:01 | 只看该作者
你code 是在那里运行的?

使用特权

评论回复
10
happy_10|  楼主 | 2021-7-4 19:03 | 只看该作者
在这个ram 里面运行

使用特权

评论回复
11
jlyuan| | 2021-7-4 19:05 | 只看该作者
必然不行啊

使用特权

评论回复
12
huwr| | 2021-7-4 19:09 | 只看该作者
你机器有几个ram

使用特权

评论回复
13
happy_10|  楼主 | 2021-7-4 19:11 | 只看该作者
一个

使用特权

评论回复
14
llljh| | 2021-7-4 19:13 | 只看该作者
这也不行啊

使用特权

评论回复
15
dengdc| | 2021-7-4 19:16 | 只看该作者
变量i也在RAM中,清RAM时会把i也清成0,导致i不停的被清0,死循环

使用特权

评论回复
16
bqyj| | 2021-7-4 19:17 | 只看该作者
给i加修饰符:register,它就不会在RAM里了,嘎嘎

使用特权

评论回复
17
liliang9554| | 2021-7-4 19:19 | 只看该作者
C的工具,汇编的思维

使用特权

评论回复
18
chenho| | 2021-7-4 19:21 | 只看该作者
用一个memset不行吗

使用特权

评论回复
19
chuxh| | 2021-7-4 19:23 | 只看该作者
汇编吧,C启动代码有清零代码,可以参考或修改后调用

使用特权

评论回复
20
songqian17| | 2021-7-4 19:25 | 只看该作者
bit clr_ram(){
char *test = (char *)0x00;
*test = 0xff;
for (test;test != 0;test --){
  *test = 0;
}
return ture;
}

使用特权

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

本版积分规则

744

主题

7973

帖子

6

粉丝