关于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 \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.

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

时间: 2024-08-30 08:22:22

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

旧文备份:怎样利用好单片机上的存储器资源来实现OD的存储与访问

我们知道OD(对象字典)是CANopen的核心,所有功能都是围绕它开展的,是协议栈的数据中心,良好的OD实现是协议栈高效稳定运行的基础,而OD的实现最基本的一点就是怎么去保存它.因为OD的内容比较杂,读写属性上,有只读数据.只写数据.可读写数据:保存要求上有非易失和掉电丢失两种类型:数据类型上有字符型.整型.长整型等等:存储格式上有8位.16位.32位等.其它的不管,本文现只讨论怎么利用单片机的资源去尽量满足OD的存储需求. 有人会以为这还要讨论么?只读的就放在只读存储器中,可写的就放在RAM中

合泰8位单片机使用小结

合泰单片机是台湾芯片,集成开发环境为HT-3000.大陆这边的芯片代理商是盛群半导体有限公司,官网上的程序用例都是由汇编编写的,当然也对C语言很好的支持,是标准C的子集.在工作中使用到的是8位的HT48R006,在开发过程中,需要注意一下几点: 1.在HT-3000中有相关的配置,包括时钟的选择,管脚的功能配置,看门狗的使能,看门狗的喂狗指令方式. 2.寄存器是支持位寻址的,包含了对应的头文件后,就能使用相关的位标示符. 3.在系统时钟配置为内部时钟时,PA5,PA6作为普通IO引脚来使用,若使

freescale 16位单片机的地址映射

以MC9S12XS128MAL为例,其实DG128之类的类似.如图一,128代表的是单片机中的FLASH大小为128K Byte,同理64代表的是单片机中的FLASH大小为64 K Byte,256代表的是单片机中的FLASH大小为256 K Byte.但是S12(X)所使用的内核CPU12(X)的地址总线为16位,寻址范围最大为2^16 =64K Byte,而这64K Byte的寻址空间还包括寄存器.EEPROM(利用Data Flash模拟).RAM等,因此不是所有的64K Byte都是用来

数据的加密传输——单片机上实现TEA加密解密算法(转)

源:数据的加密传输——单片机上实现TEA加密解密算法 各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性.常用的加密解密算法比如DES.RSA等,受限于单片机的内存和运算速度,实现起来比较困难,但一种叫TEA的加密算法特别适合单片机使用. TEA(Tiny Encryption Algorithm)是一种简单高效的加密算法,以加密解密速度快,实现简单著称.算法很简单,TEA算法每一次可以操作64-bit(8-byte),

32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)

32位Windows7上8G内存使用感受+xp 32位下使用8G内存 博客分类: Windows XPWindowsIE企业应用软件测试 我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽...速度超快...基本没有等待的概念...深有体会... 为什么要使用8G内存?在国内外各大论坛上,这都是一个有争议的问题.问题的反方论据非常充分: 除了少数专业领域,大多数应用程序不会需要超过1G的内存. 游戏使用的内存最多也是2G而已. 8G内存不便宜,不如花在显卡上. 升级到8G后没有什么明显

教你如何在51单片机上模拟串口通信!!!

我们可以不使用单片机本身带有的串口,而自己用程序去模拟一个串口并达到和本身的串口具有同样的功能, 首先,我们需要用到CH340串口模块,大家可以上某宝自行购买. 正面: 反面: 然后我们需要了解一下这串口模块上的引脚: 5V  :与VCC短路为5V TLL输出(电源和信号输出都是5V) VCC:可以与3.3V和5V用跳帽连接 3.3V:与VCC短路为3.3V TLL输出(电源和信号输出都是3.3V) TXD:发送数据端口(与单片机上的接收引脚用杜邦线连接) RXD:接收数据端口(与单片机上的发送

微信小程序通过低功率蓝牙控制单片机上硬件设备

1.软件部分介绍 微信小程序是一种新的应用,用户不需要下载应用只用通过扫二维码或者打开链接就能使用,使用完后不需要卸载,直接关闭就行了.微信在2017年初推出微信小程序开发环境.任何企业,媒体,个人都可以注册开发.是一种全新的 开发模式.微信也因此受到许多程序员的一致好评,尤其是微信小程序的云开发,提供大量数据处理接口,让初学者也可以很快入手.不需要后端数据库的支持,自己一个人就可以开发前端和后台. 微信小程序为蓝牙模块提供了18个API.其中低功率蓝牙9个,传统蓝牙9个.本次设计使用了其中的9

[单选题]64位系统上,定义的变量int *a[2][3]占据的——字节

4 12 24 48 正确答案: 很遗憾,没答对,再接再厉! 答案解析 在64位系统上,一个指针占8个字节.在32位系统上,一个指针占4个字节.注意无论在32位还是在64位系统占,int均为4个字节.

64位ubuntu上安装 hadoop-2.4.0

完全参考:http://blog.csdn.net/cruise_h/article/details/18709969 这上面的安装教程 伪分布配置: http://my.oschina.net/mynote/blog/93735 64位ubuntu上安装 hadoop-2.4.0,布布扣,bubuko.com