首页 > 其他 > 详细

关于8位单片机上资源有限一些要注意的点

时间:2018-10-16 01:25:27      阅读:271      评论:0      收藏:0      [点我收藏+]

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 \n\r", sizeof(char));
 2 SerialPrintf("short : %d \n\r", sizeof(short));
 3 SerialPrintf("int : %d \n\r", sizeof(int));
 4 SerialPrintf("long : %d \n\r", sizeof(long));
 5 SerialPrintf("long long : %d \n\r", 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位单片机上资源有限一些要注意的点

原文:https://www.cnblogs.com/rodzheng/p/9795225.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!