你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为什么我将延时程序搬到RAM中运行,反而变慢了?

[复制链接]
善良2016 提问时间:2017-4-19 10:51 /
原先delay()在主循环中演示闪灯的,后来搬到RAM中运行,发现闪灯变慢了,怎么会在RAM中运行反而比flash中更慢??

以下是一段小的测试代码:
unsigned long i=0,count=80000;
int _fctcpy(char name);
#pragma section (CODE_IN_RAM)
void Delay(void)
{
   for(i=0;i<count;i++);
}
#pragma section ()
main()
{
       
        unsigned char x=0;
       
        _fctcpy('C');
        Init_Clock(); //初始化时钟配置
        Init_GPIO(); //        初始化GPIO配置
        while (1)
   {
//                if(GPIO_ReadInputPin(GPIOG, GPIO_PIN_2)==0x04)//PG2按键检测为高电平 ,按键闭合,为0电平
                if((GPIO_ReadInputData(GPIOG)&GPIO_PIN_2)==0x04) //PG2按键检测为高电平 ok
                 x=0;
                else if(x==0) //PG2按键检测为下降沿,认为有一次按键
          {
                        x=1;
                       
                        if(count==80000)count=80000; //输出频率切换
                        else count=80000;
                }               
               
                GPIO_WriteReverse(GPIOI, GPIO_PIN_0);//LED按指定频率闪烁
                Delay();
//                for(i=0;i<count;i++);     //注释上句Delay, 此句有效,代码在flash中延时
         }         
}


收藏 1 评论2 发布时间:2017-4-19 10:51

举报

2个回答
wu1169668869 回答时间:2017-4-19 11:06:08
为什么不试试神奇的volatile呢
善良2016 回答时间:2017-4-19 11:21:30
wu1169668869 发表于 2017-4-19 11:06
为什么不试试神奇的volatile呢

你好!这地方跟volatile有关吗?能具体解释下么

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版