关于8位单片机上资源有限一些要注意的点
Posted rodzheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于8位单片机上资源有限一些要注意的点相关的知识,希望对你有一定的参考价值。
8位mcu,51内核:
新塘的N76E003AT20,比stm8同款的多一点端口,具体多什么可以百度一下,这里不赘述了.
注意点1:局部变量的合理分配,一般在8位单片机上跑的程序逻辑都比较简单,单循环+中断.
根据N76的特性,把一些大的数组局部变量分配在xram里.参考EEPROM的demo.
注意点2:8位机运算能力有限,有限取余和整除运算可以直接用
1 TH0=(65536-50000)/256; 2 TL0=(65536-50000)%256; 3 //等效于 4 TH0=(65536-50000)>>8; 5 TL0=(65536-50000)&0x00ff;
这个不知道编译器会不会去主动优化,自己写比较放心吧.
注意点3: 8位和32位里面一些数据长短的问题:
1 SerialPrintf("char : %d ", sizeof(char)); 2 SerialPrintf("short : %d ", sizeof(short)); 3 SerialPrintf("int : %d ", sizeof(int)); 4 SerialPrintf("long : %d ", sizeof(long)); 5 SerialPrintf("long long : %d ", sizeof(long long)); 6 // 8位 7 char : 1 8 short : 2 9 int : 2 10 long : 4 11 long long : 4 12 //32位 13 char : 1 14 short : 2 15 int : 4 16 long : 4 17 long long : 8
所以,请用typedef signed char int8; 来定义
注意点4: 善用Timer0的中断1,这个是在中断优先级里仅次于INT0,而RI/TI的中断是4.
以上是关于关于8位单片机上资源有限一些要注意的点的主要内容,如果未能解决你的问题,请参考以下文章