|
IAR AVR 的程序优化,大家都有什么心得呢?
看论坛里的帖子,大部分说到的都只是两点:
1、中断里面修改到的变量需要用volatile
2、类似
while(m)
;
的结构需要更改为
while(m)
__delay_cycles(1);
那么除了以上两点以外,还需要注意哪些方面呢?
我现在手头上的一个东西,用了上面的两个办法都还是不行,程序会跑飞
此外,在使用volatile的时候,有很多细节
比如,两个volatile变量不能同时在赋值号的两边
比如
volatile unsigned char i, j;
void test(void)
{
i = j;
}
这样是不行的
那么就需要用
volatile unsigned char i, j;
void test(void)
{
unsigned char temp;
temp = i;
j = temp;
}
这一类的细节大家也讨论一下啊,这一类的资料好像比较少,大部分谈volatile的资料都是说概念,具体实施细节很少人谈到 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|