中断函数为什么要加:#pragma CODE_SEG __NEAR_SEG NON_BANKED 这个声明?这个声明是干什么用的?
要从FLASH分页和非分页的区别说起。
FLASH里非分页和分页的使用。 分页是不可见的,要用的时候PPAGE参与寻址。
1 FLASH里非分页工作机制
FLASH一共为128K,一页是16K,那么应该有8页才是,但是实际只有6个分页。有2个非分页放在4000-7FFF,和C000-FFFF两个逻辑地址窗里。那么,当程序的寻址在64K之内(2^16=64K,16位机的寻址能力是64K)时,就不用分页了,直接使用那两个非分页的数据。实际上,3E 页 3F页是可见的,其实他们就是那2个非分页的映射。因此,使用非分页FLASH,就不须设置PPAGE寄存器,直接使用逻辑地址即可。这点我们可以从以下看出:
很直观地看出,把这两个可以直接使用逻辑地址的页面设为NON_BANKED, 那么中断函数放在NON_BANKED里,就可以把函数放在64K的寻址程序段中。这么一来,进中断就方便多了,效率也高很多。
C语言中除法怎么取得小数
除了一开始用float进行定义之外,后面进行除法运算的时候要加.0,否则算出的结果电脑会自动取整~~如:3/2的结果和3.0/2的结果就不同~~因为没有定义3/2为浮点型,所以3/2自动取整,结果等于1而3.0/2,由于预先用浮点型表示其结果显然为:1.5,除法运算符“ / ”,如果是两个整数相除结果为整数,如果需要保留小数时 必须将其中一个除数转换为浮点数
高速光耦可达10Mbit/s
PCB电路的规范性上应注意的是分布电感分布电容,以及模拟信号的传输问题。电感电容引线要尽可能短,以减小分布电容和分布电感,电路板的走线也应注意连接LC回路同放大电路的连线尽量短。通过排线实现跨板的走线,其信号应是放大后的信号,以提高系统信噪比。有时单片机M9S12XS128的AD输入通道受到干扰后会无故复位,这点应该注意,必要的话,在靠近单片机的输入端串入低通网络。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !