历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2020年01月11日 | avr移位算法详解

2020-01-11 来源:elecfans

  或许很多初学者都会被移位算法迷惑,移位算法形如 (1《《X)这样的形式,高手写程序时,习惯用移位算法来写出各个寄存器的使用。比如下面一段是AVR 的USART的初始化代码。


  UCSRC = (1《《URSEL)|(1《《UCSZ1)|(1《《UCSZ0);

  UCSR0B = (1《《RXCIE)|(1《《TXCIE)|(1《《RXEN)|(1《《TXEN); // RXCIE=1;TXCIE=1;UDREIE=0;RXEN=1;TXEN=1

  这样的写法对高手是福,这些代码里面说明了操作了寄存器的哪些位,能够看出它的操作的意义;对新手确是祸害,因为新手看不懂这样的程序。


  什么是移位算法:

  如:A = (1《《2),1写成二进制就是0000 0001,这个一左移2位就是0000 0100,所以得到的数A为0000 0100,即0x04。


  再如:B = (2《《4),2写成二进制就是0000 0010,这个一左移4位就是0010 0000,所以得到的数B为0010 0000,即0x20。


  上面两个移位算法都是正确的,第一种写法,表示第三位为1其余都是0的数,数的时候是从0数起的,再比如(1《《0)表示的是0000 0001,(1《《7)表示的是1000 0000,但是第二种写法没有没有这种意义,移位也用于乘除法,左移一位乘以2,右移移位除以2,上面的第二种写法2左移四位得到的数是2&TImes;2&TImes;2&TImes;2&TImes;2=32,也就是上面的0x20。


  我们再来看上面的这句话:UCSRC = (1《《URSEL)|(1《《UCSZ1)|(1《《UCSZ0);

  UCSRC是一个和串口通讯有关的一个八位寄存器,他的每一位都有特殊的定义,我们通过查数据手册可以看到,如下的内容。

  avr移位算法详解

  我们在程序中包含的头文件iom16v.h类似的文件会有#define URSEL 7 这样的定义,1《《URSEL即是wei7,1《《UCSZ1选择位2,1《《UCSZ0选择位1,整句话UCSRC = (1《《URSEL)|(1《《UCSZ1)|(1《《UCSZ0);的效果就是让UCSRC的位七,位二,位一为高,其他都为低,然后在数据手册里面你可以看到各个位的作用。UCSRC = (1《《7)|(1《《2)|(1《《1) 即UCSRC = 1000 0110

推荐阅读

史海拾趣

中科芯(CKS)公司的发展小趣事

作为电子行业的领军企业,中科芯承担着众多国家重点科研任务。多年来,公司积极参与国家重大科研项目,涉及通信、计算机、航空航天等多个领域。通过不断的技术攻关和创新,中科芯成功完成了500多项国家重点科研任务,获得了国家奖18项、省部级奖近200项。这些成果的取得不仅提升了公司的技术实力,也为中国电子行业的发展做出了巨大贡献。

固得沃克(GOODWORK)公司的发展小趣事

固得沃克始终关注市场需求的变化,不断拓展产品线以满足不同客户的需求。公司从最初的二极管生产,逐步扩展到三极管、整流桥堆、TVS管、MOS管等多个领域,并实现了全面自主研发、生产和销售。此外,固得沃克还提供定制化服务,根据客户的具体需求提供个性化的解决方案。这种灵活多变的产品策略和服务模式,使公司在激烈的市场竞争中保持了竞争优势。

BOOKHAM公司的发展小趣事

BOOKHAM公司深知人才是企业发展的核心。因此,公司一直致力于引进和培养高素质的人才。通过与高校和研究机构的合作,公司吸引了大批优秀的科研人员和工程师加入。同时,公司还建立了完善的培训体系,为员工提供持续的学习和发展机会。这些措施使得BOOKHAM公司拥有一支技术实力强大、富有创新精神的人才队伍,为公司的发展提供了有力保障。

Chengdu Sino Microelectronics Technology Co Ltd公司的发展小趣事

2000年3月,成都华微科技诞生。当时,集成电路设计行业刚刚起步,市场竞争激烈。然而,公司凭借对中国电子信息产业集团的坚定信任,以及对中国集成电路设计市场的深刻洞察,毅然决然地踏上了这条充满挑战的道路。初创期的华微科技,虽然规模较小,但团队成员都怀揣着对技术的热情和对未来的憧憬,为公司的长远发展奠定了坚实的基础。

Garmin_Canada_Inc.公司的发展小趣事
选用高质量的DTMF信号发生器芯片,如MT8888等,这些芯片具有稳定的性能和较高的精度。
EPCOS (TDK)公司的发展小趣事

2009年10月1日,EPCOS与TDK元件事业部合并,成立了TDK-EPC公司。这次合并进一步增强了EPCOS在电子元器件领域的实力,使其在全球市场中的地位更加稳固。合并后,TDK-EPC公司继续秉承EPCOS的技术创新和产品拓展战略,不断推出具有竞争力的新产品和解决方案,以满足客户日益增长的需求。

问答坊 | AI 解惑

snmp协议开发

现在要在交换机上实现snmp协议,看了一些资料,还是一头雾水,不知道如何下手,有做过的高人指教下,具体的开发流程是怎样的?以及协议怎么样去移植?…

查看全部问答>

底薪 + 提成 + 分红 请Linux Wince 软硬件合作高手

行业PDA研发、销售 ARM7 ARM9 ARM11硬件平台 WINCE LINUX软件平台 QQ:1459635026 广东地区为佳。…

查看全部问答>

CAB 安装包解问题

问个无知的问题,我们都知道Windows Mobile上的安装包是CAB格式,解压后有一个setup.xml来描述 内部安装文件和注册表,但是有些第三方应用解压后看不到setup.xml,不知道是用什么工具打包的,微软的工具打包出来是有setup.xml的。 比如arcsoft的软 ...…

查看全部问答>

FLOWLINE超声波液位计在加氯消毒系统中的应用

 应用产品:EchoPod型号:DL14-00罐材质:PE介质:氯气  技术参数量程:2〞-48.9〞供电电压:12-24VDC信号输出:4﹡SPST继电器触点容量:60VA, 1A标定:WebCal符合标准:RoHS级别:GP认证:CE   新鲜农产品和相关加 ...…

查看全部问答>

谁有LPC2114 KEIL 程序工程?

谁有LPC2114 KEIL 程序工程?  能否传一个给我, QQ: 451440441…

查看全部问答>

出售或者交换一块xilinx spartan 3e的板子

有一块xilinx spartan 3e的开发板,就是原厂那个。因为老师又给了板子,这块闲置很久了。可以卖,也可以交换板子,卖的话,我觉得950应该可以,以交换为主吧。因为这个板子还是比较贵的,所以交换的话,估计要补差价才行。想换的就是msp430的板子, ...…

查看全部问答>

JX51开发板2.3发布。欢迎各位来捧场!

以前做过一个1.0,但是其中存在着不少问题,经过改进现在发布2.3版本。。。  板子正在制作过程中。。。     板子的资源: 1.  STC 89S52单片机 2.  8*8双色点阵 ,使用3颗74HC595控制 3.  8个流水灯 4.&nbs ...…

查看全部问答>

有25年的工作经验的TI 电源工程师讲WEBENCH 设计工具(中文)

有25年的工作经验的TI 电源工程师讲WEBENCH 设计工具(中文) 数秒间向您展示数十亿个完整的电源供应器设计选择,这个视频将指导您如何迅速地修改设计参数,并实时审视该DC-DC电源供应器设计的性能变化,以便从系统物料成本、方案大小及效率间获得 ...…

查看全部问答>