8727|7

1万

帖子

16

TA的资源

版主

楼主
 

MSP430学习笔记之八:硬件乘法器 [复制链接]

 

 

硬件乘除法器是一个通过内总线与CPU相连的16位外围模块。MSP430单片机可以在内部改变CPU结构和指令的情况下增加功能,这种结构特别适用于对运算速度要求很严格的情况,硬件乘法器大大提高了MSP430单片机的数据处理能力,其支持的运算如下:

无符号乘法(MPY

有符号乘法 MPYS

无符号乘法 MAC

有符号乘法 MACS

16X16位、8X1616X88X8位。

 

操作数寄存器:

OP1 (第1操作数)

OP2  (第2操作数)

第一个操作数可源于MPYMPYSMACMACS四个寄存器,它们能确定乘法的类型。当第二个操作数写入后,相应的乘法操作立即执行,一般需4个周期。

结果寄存器:

RESHI(结果高字节寄存器)

RESLO(结果低字节寄存器)

SUMEXT(结果扩展寄存器)

寄存器RESHIRESLO的内容为两个16位相乘的32位乘积结果。而寄存器SUMEXT的内容由执行的乘法模式及乘积结果决定。

 

MPY   操作数1  指示操作数为无符号数相乘

MPYS  操作数1  指示操作数为有符号数相乘

MAC   操作数1  指示操作数为有符号数累加

OP_2   操作数2

RESLO  结果低字节寄存器

RESHI   结果高字节寄存器

SUMEXT 结果扩展寄存器

以上寄存器均是16位的字寄存器,在使用时,用户可以以字节操作或字操作,这样就开成了不同位数乘法的4种运算。

 

步骤:

 

写第一操作数OP1,来源于MPYMPYSMACMACS四个寄存器。

写第二操作数OP2,写入完毕,乘法运算开始进行。

保存结果,存放在RESHIRESLOSUMEXT中。

 

第二个操作数写入完毕乘法就开始。一般在取出结果前插入1-2条指令,以保证足够的运算时间。在一个单片机中只有一个硬件乘法器,若遇到多处使用,须在每一次用完之后再进行下次运算。

结果进行何种运算,只要操作数类型为8X8型,操作过程就要使用寄存器的绝对地址,而不能使用符号形式。寄存器MPYMPYSMACMACSOP2的地址分别为:0130H0132H0134H0136H, 0138H


 

 

还是简单的例程:

 

两组无符号数相乘结果放在另一个数组中

 

#include "msp430x16x.h"

unsigned long int Result[7];
unsigned int Data1[7];
unsigned int Data2[7];
unsigned char i;

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  for(i=0;i<7;i++)
  {
      Data1 = 250 * i;
      Data2 = 130 * i;
  }
  for(i=0;i<7; i++)
  {
    MPY = Data1;
    OP2 = Data2;
    _NOP();
    _NOP();
    _NOP();
    _NOP(); 
    Result = RESHI;
    Result <<=16;
    Result += RESLO;
  }
  _NOP();
}

最新回复

很好的资料,多谢楼主~  详情 回复 发表于 2012-7-28 16:19
 
点赞 关注
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复
举报

7172

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 
一直在关心版主连载的笔记
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 
这个模块我始终都没用过
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(初级)

4
 
这种琢磨此模块,多谢分享。
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

5
 

收集中。。。。。。,很好的学习资料,谢谢LZ

 
 
 

回复

66

帖子

4

TA的资源

一粒金砂(中级)

6
 

求教

求教乘累加如何使用啊?
 
 
 

回复

307

帖子

1

TA的资源

一粒金砂(高级)

7
 
刚好在研究硬件乘法器,很好的文章,哈哈
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(中级)

8
 
很好的资料,多谢楼主~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表